检查字符串的长度 - Linux

时间:2016-06-21 18:26:12

标签: linux unix command-line

我有一个有几千行的文件。我需要确保一个字符串在整个文件中始终为9个字符,如果没有,它会将其踢回并在字符串不是9个字符长的地方抛出错误。

xxxxxxxxx,xxx

我需要前9个字符长度始终为9个字符,如果没有,则抛出错误。

------ ERRORS ------
Errors found at _, _, _, _, _, _ ...etc.

2 个答案:

答案 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