【发布时间】:2011-07-11 13:13:39
【问题描述】:
我的输入文件有以下条目:
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/}'
谢谢
【问题讨论】:
-
您想准确捕捉什么,只是
Escherichia_coli_O127:H6?对了,没有第6行,只呈现了5行 -
不,有很多字符串,显示的是包含更多字符串/科学名称/分类的文件的一部分。我已将 6 更正为 5,不确定它没有保存什么
-
@Sudeep:我只是在询问给出的示例,我知道这是概括的。但是,就您刚刚提供的示例输入的输出而言,您在寻找什么?
-
@Sudeep:另外,
\t之间的逗号,和E中的E之间是空格还是制表符Escherichia? -
@SiegeX 在 "," 和 "E" 之间有 "\t"
标签: string escaping awk sequences