我有一个包含姓名,地址和其他数据的平面文件。大多数行都有一个11位数字,从第299行开始,但有些是空白的。
我无法在特定字符串上匹配,因为我正在查找第299行到第309列(11个字符)为空的那些行,即空白。
我怎样才能在Unix中执行此操作?这是使用sed做的事情还是我应该使用AWK?
答案 0 :(得分:2)
尝试:
awk '{if (substr($0,299,11)=="")print $0}' file
答案 1 :(得分:2)
你可以做到
awk 'substr($0, 99, 11) == sprintf("%*s", 11, " ")' input.txt
将从位置99打印11个字符的空白行。
答案 2 :(得分:1)
这可能对您有用:
<input_file sed -e '/^.\{98\} \{11\}/!d;=' | sed -e '1~2!d'
这将打印来自input_file
的行的行号,其中第99行包含11个空格
如果其来自第299行,则将\{98\}
更改为\{298\}