我正在尝试逐行读取文件并检查当前行是否包含多个列.如果它包含多个,我希望脚本中止.
我有一个名为test的文件,它包含以下内容......
ME
TEST
HELLO
WORLD
BOO,HOO
BYE BYE
Run Code Online (Sandbox Code Playgroud)
我发现使用awk我可以通过使用以下内容获得列数...
awk -F',' '{print NF}' test
Run Code Online (Sandbox Code Playgroud)
这回来了......
1
1
1
1
2
1
Run Code Online (Sandbox Code Playgroud)
有没有办法让脚本在找到'2'后退出并打印一个错误,说明$ 1(在这种情况下BOO,HOO)包含两列?
当然你可以这样做:
awk -F, 'NF > 1{exit} 1' file
Run Code Online (Sandbox Code Playgroud)
这将输出为:
ME
TEST
HELLO
WORLD
Run Code Online (Sandbox Code Playgroud)
当NF>1
条件超过1列时,条件退出awk.
编辑:根据下面的评论,OP希望打印第一行有2列并退出.这个命令应该工作:
awk -F, 'NF > 1{print; exit}' file
BOO,HOO
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9094 次 |
最近记录: |