unix中的子命令替换多个符号,怎么样?

时间:2017-08-08 11:19:10

标签: linux unix sed

我使用下面的命令将两个文件与第三列的abc.txt和另一个+ abc.txt进行比较。它通过忽略加号(+)符号给我正确的输出。

如何在代码中添加多个符号,以便它也忽略Plus(+)ymbol以及感叹号(!)符号。

第三栏可能有

+abc.txt
!abc.txt   --> So It have to ignore + and ! symbol while comparing with abc.txt


FNR==0 {next}
NR==FNR {a[$1]=$0; next} {k=$3; sub(/^\+/,"",k)} k in a {split(a[k], b)
print $1,$2,b[2],$3,b[3],b[4],b[5],$4,$5,$6,$7; delete a[k] }
END {for(k in a) print a[k] > "Compare_unmatched.txt"}

径:

{K = $ 3; sub(/ ^ + /,“”,k); sub(/ ^!/,“”,k)} - 使用此行,但它没有给我正确的结果。

你可以告诉我一些工作吗?谢谢!

1 个答案:

答案 0 :(得分:1)

试试sub("^[+!]", "", k)。不确定代码的其余部分。