1

我有:

AGT GTT TTA CAT TTT GTA TTT TTT TTC TAA ATT CTG AGT GTA GTC TTC CCT

我想要的输出是:

AGT GTT TTA CAT TTT

我的代码:

awk '{for (i=1;i<=NF;i++) {printf $i" "; if ($i~/TTT/) {break}}}'

但是,似乎 break 不起作用,因为它打印:

AGT GTT TTA CAT TTT GTA TTT TTT TTC TAA ATT CTG AGT GTA GTC TTC CCT
4

2 回答 2

3

如评论所示,更改breakforexit可以使它:

awk '{for (i=1;i<=NF;i++) {printf $i" "; if ($i~/TTT/) exit}}' file

请注意,如果只有一个操作,您可以删除操作周围的括号:

if () {command}  <== equivalent ==>   if () command

if () {command1; command2} <== NOT equivalent ==>  if () command1; command2
于 2013-11-08T12:29:09.153 回答
0
$ cat file
AGT GTT TTA CAT TTT GTA TTT TTT TTC TAA ATT CTG AGT GTA GTC TTC CCT
$ awk '{sub(/TTT.*/,"TTT")}1' file
AGT GTT TTA CAT TTT
于 2013-11-08T16:07:06.013 回答