awk 查找每行的列数,如果超过要求则退出
awk to find number of columns for each line and exit if more than required
我试图逐行读取文件并检查当前行是否包含多于一列。如果它包含多个,我希望脚本中止。
我有一个名为 test 的文件,它包含以下内容...
ME
TEST
HELLO
WORLD
BOO,HOO
BYE BYE
我发现使用 awk 可以使用以下命令获取列数...
awk -F',' '{print NF}' test
还有这个returns...
1
1
1
1
2
1
有没有办法让脚本在找到“2”后退出并打印一条错误,指出 $1(在本例中为 BOO,HOO)包含两列?
当然可以:
awk -F, 'NF > 1{exit} 1' file
这将给出输出:
ME
TEST
HELLO
WORLD
as NF>1
一旦超过 1 列,条件就会退出 awk。
编辑: 根据下面的评论,OP 想要打印第一行两列并退出。此命令应该有效:
awk -F, 'NF > 1{print; exit}' file
BOO,HOO
我试图逐行读取文件并检查当前行是否包含多于一列。如果它包含多个,我希望脚本中止。
我有一个名为 test 的文件,它包含以下内容...
ME
TEST
HELLO
WORLD
BOO,HOO
BYE BYE
我发现使用 awk 可以使用以下命令获取列数...
awk -F',' '{print NF}' test
还有这个returns...
1
1
1
1
2
1
有没有办法让脚本在找到“2”后退出并打印一条错误,指出 $1(在本例中为 BOO,HOO)包含两列?
当然可以:
awk -F, 'NF > 1{exit} 1' file
这将给出输出:
ME
TEST
HELLO
WORLD
as NF>1
一旦超过 1 列,条件就会退出 awk。
编辑: 根据下面的评论,OP 想要打印第一行两列并退出。此命令应该有效:
awk -F, 'NF > 1{print; exit}' file
BOO,HOO