问题
我需要在bash中,根据第3列
除以,
从csv
中grep行,仅当它仅由组成时6 位数字。
示例
输入文件。
,11,221951
,11,221952
,11,232928
,11,45
,11,4
,11,5
,11,6
,11,6
输出文件(仅基于第 3 列的行,其中有 6 个字符)。
,11,221951
,11,221952
,11,232928
我尝试过
cut -d, -f3 input_file.csv | grep -x '.\{6\}'
但它当然会删除前两列。
谢谢。
最佳答案
您可以使用
awk -F',' '$3 ~ /^[0-9]{6}$/' file > newfile
这里,
-F','
将字段分隔符设置为,
'$3 ~/^[0-9]{6}$/'
保留第三个字段值仅包含 6 位数字的行。
请参阅online demo :
s=",11,221951
,11,221952
,11,232928
,11,45
,11,4
,11,5
,11,6
,11,6"
awk -F',' '$3 ~ /^[0-9]{6}$/' <<< "$s"
输出:
,11,221951
,11,221952
,11,232928
关于Bash,根据第 3 列从 csv 中 grep 行,如果长度为 6 个字符(数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57672681/