稍稍扭动即可找到固定宽度文件的长度

时间:2018-11-21 12:26:33

标签: linux shell unix awk sed

您好朋友/我的上师和所有善良的人。

我有一个固定宽度的文件,目前我正在尝试查找包含x字节的那些行的长度。我尝试了几个awk命令,但它没有给我想要的结果。我的固定宽度包含208个字节,但是有几行不包含208个字节。我正在尝试发现没有208bytes的记录。

这个cmd给了我文件长度

awk '{print length;exit}' file.text

在这里,我尝试打印包含101个字节的行,但是没有用。

awk '{print length==101}' file.text

这里的任何帮助/见解都会很有帮助

2 个答案:

答案 0 :(得分:1)

使用awk

awk 'length() < 208' file

好吧,length()给出的是个字符的数量,而不是个字节。此数字在unicode上下文中可以不同。您可以使用LANG环境变量来强制awk使用 bytes

LANG=C awk 'length() < 208' file

答案 1 :(得分:0)

抢救Perl!

perl -lne 'print "$.:", length if length != 208' -- file.text
  • -n逐行读取输入
  • -l在处理输入之前从输入中删除换行符,并将其添加到print

单线将打印行号($。)和每行的长度不同于208的行的长度。