awk 查找每行的列数,如果超过需要则退出

问题描述 投票:0回答:1

我正在尝试逐行读取文件并检查当前行是否包含多个列。如果它包含多个,我希望脚本中止。

我有一个名为 test 的文件,它包含以下内容...

ME
TEST
HELLO
WORLD
BOO,HOO
BYE BYE

我发现使用 awk 可以通过以下方式获取列数...

awk -F',' '{print NF}' test

然后返回...

1
1
1
1
2
1

有没有办法让脚本在找到“2”后退出并打印错误,指出 $1(在本例中为 BOO,HOO)包含两列?

bash awk exit
1个回答
15
投票

您似乎想打印第一行两列并立即退出。这个

awk
命令应该有效:

awk -F, 'NF > 1{print; exit}' file
BOO,HOO

等效的

sed
命令:

sed -E '/[^,]+,/q;d' file

BOO,HOO
© www.soinside.com 2019 - 2024. All rights reserved.