从文件中搜索字符串并将其输出到 xml

从文件中搜索字符串并将其输出到 xml
Received timestamp=1459434658969:
ABC: Field id=0 double 11.4
DEF: Field id=1 string >def<
GHI: Field id=2 string >g_hi<

我想读取包含上述格式输入的文件,并将以下数据输出到 xml 文件中:

ABC: 11.4
DEF: def
GHI: g_hi

答案1

为此,您可以使用grep,awk和。sed首先,过滤掉不需要的包含该单词的第一行received(您应该在此处使用唯一的表达式以确保仅过滤此行),让我们awk通过 and 拆分以下行,然后删除<and >with sed

cat a.txt  | grep -v received | awk '{print $1 " " $5}' | sed -e 's/[<>]//g'

在上面的例子中a.txt包含输入

received timestamp=1459434658969:
ABC: Field id=0 double 11.4
DEF: Field id=1 string >def<
GHI: Field id=2 string >g_hi<

结果是:

ABC: 11.4
DEF: def
GHI: g_hi

答案2

不需要管道grepawkanssed

perl -e 'while (<>) {
  s/[<>]//g ;
  next if ( /received/ ) ;
  @Fld = split(" ", $_);
  printf "%s %s\n",$Fld[0],$Fld[4] ;}' a.txt

会做的。

您可以将代码放入 perl 文件中

perl -f a.pl  a.txt

相关内容