簡體   English   中英

如何將一些字符串映射到另一個字符串並在perl中打印輸出

[英]how to map some string(s) into another and print output in perl

我有一個日志文件和一個由用戶輸入的表名。 現在,將在日志文件中搜索用戶輸入的該表名,如果找到與該表相對應的任何數據,則應將其映射為最終用戶可以理解的非技術性語言。

任何人都可以建議如何進行此映射,然后將等效的映射字符串打印為輸出。

例如,要映射的數據是:

!!!!!! Diff004: record 0 differs in content for fields 'pid'
!!!!!! Diff005: record 1 differs in content for fields 'pid'
!!!!!! Diff006: record 2 differs in content for fields 'pid'

該數據將被映射為更多非技術性陳述,然后將那些映射后的狀態菜單(而不是這些映射狀態)顯示給用戶。

@TLP要求提供真實數據

Checking table CTusr000...
!!!!!! Diff004: record 0 differs in content for fields 'pid'
!!!!!!                        
uexpday,uexphr,uexpmin,uexpsec
db1 [Rec 000000] 30 00 00 00 00 00 00 00,00 00,53 55 50 45 52 55 53 45 52 00 00,77

對於我來說,真的很難弄清楚映射到一種非技術性語言中意味着什么,因為這不是技術性語言,而是英語

因此,請看下面的示例,該示例向您展示如何從通用$line獲取record nofield name

#!/usr/bin/perl -w

use strict;
use warnings;

my $line = "!!!!!! Diff004: record 0 differs in content for fields 'pid'";

$line =~ /^!{6}\s+.*record\s+(\d+)\s+differs.*fields\s+'(\w+)'$/;

print "record no: $1\n";
print "field name: $2\n";

以您希望的更好的非技術性方式結合這些信息。

該示例僅適用於單個$line 我要留給您閱讀文件任務和迭代處理任務的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM