我有一个有几千行的文件。我需要确保一个字符串在整个文件中始终为9个字符,如果没有,它会将其踢回并在字符串不是9个字符长的地方抛出错误。
xxxxxxxxx,xxx
我需要前9个字符长度始终为9个字符,如果没有,则抛出错误。
------ ERRORS ------
Errors found at _, _, _, _, _, _ ...etc.
答案 0 :(得分:2)
您可以使用awk
:
awk -F, 'length($1) !== 9 {print "ERROR at line "NR}' file
F,
将字段分隔符设置为,
length($1) !== 9
检查第一个字段是否为9个字符print "ERROR at line "NR
会打印错误消息以及行号NR
答案 1 :(得分:2)
您可以使用grep
列出不匹配项。使用GNU grep:
grep -vEn '^[^,]{9},' file
这列出了所有不以9个非逗号开头,后跟逗号的行(以行号为前缀)。例如:
$ cat file
1234567890,foo
123456789,bar
12345678,baz
$ grep -vEn '^[^,]{9},' file
1:1234567890,foo
3:12345678,baz