2017-08-08 38 views
0

我使用下面的命令,用于比较两个文件具有的abc.txt第三列和另一+的abc.txt。它通过忽略加号(+)符号给我正确的输出。unix中的子命令用多个符号代替,怎么样?

我怎么在我的代码中添加多个符号,这样它也忽略加号(+)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;子(/^+/“”,K);子(!/ ^/“” K)} - 使用这条线,但它不给我正确的结果。

可否请你周围建议我的工作。谢谢!

+0

您是否将第二个文件中的字段3与第一个文件中的第一个字段进行比较?请添加示例输入和输出(也许在简化问题后)。 –

回答

1

尝试sub("^[+!]", "", k)。不知道其余的代码。

+0

它适合我。谢谢你的帮助:) – user7268185