我的输入文件包含以下条目:
0100000000010001000 1 GWSL7YE02GHT73,
0010000000000000000 1 GWSL7YE02GU6GK,
0000000000000000000 1 GWSL7YE02G5W2B,
0010000000110000000 1 GWSL7YE02I364F,
0000000000000000000 1 GWSL7YE02F4IOC, Escherichia_coli_O127:H6
我怎样才能捕获末尾有字符串的行,例如第5行。
另外需要注意的是,在每一行中都有两个转义序列“\ t”“\ n”。
因此在第1-5行中不要认为在“,”之后存在转义字符“\ n”,但实际上它是“\ t”“\ n”。
我确实有过以下awk代码:awk '{if ($0~/[A-Z0-9_]$/) print$NF}'
,但是,这假设有字母表,结尾有非核心数。实际上,名称可以以任何特殊字符结束。我已经测试过,因此我必须使用下划线“_”。那么除此之外还有其他方法吗?我可以将某些内容设为awk '{if ($NF!~/an expression that maps ,\n\t/}'
由于
答案 0 :(得分:1)
只查找字段大于3的行
awk 'NF>3' ./infile
$ cat -A lastfield
0100000000010001000 1 GWSL7YE02GHT73,^I$
0010000000000000000 1 GWSL7YE02GU6GK,^I$
0000000000000000000 1 GWSL7YE02G5W2B,^I$
0010000000110000000 1 GWSL7YE02I364F,^I$
0000000000000000000 1 GWSL7YE02F4IOC,^IEscherichia_coli_O127:H6^I$
$ awk 'NF>3' lastfield
0000000000000000000 1 GWSL7YE02F4IOC, Escherichia_coli_O127:H6
答案 1 :(得分:0)
您也可以尝试
awk -F, 'NF>1' file