AWK中的BREAK不起作用

时间:2013-11-08 12:25:49

标签: loops awk break

我有:

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}}}'

然而,似乎中断不起作用,因为它打印:

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

2 个答案:

答案 0 :(得分:2)

正如评论中所示,更改break的{​​{1}}可以实现:

exit

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

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

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

答案 1 :(得分: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