我想使用awk搜索文件,以输出具有以特定列号开头的值的行。 e.g。
我从第10栏开始寻找979719:
moobaaraa**979719**
moobaaraa123456
moo**979719**123456
moobaaraa**979719**
moobaaraa123456
如您所见,没有分隔符。它是原始数据文本文件。我想输出第1行和第4行。不是第3行,它包含模式但不包含所需的列号。
答案 0 :(得分:1)
awk '/979719$/' file
moobaaraa979719
moobaaraa979719
答案 1 :(得分:0)
一种简单的sed
方法。
$ cat file
moobaaraa979719
moobaaraa123456
moo979719123456
moobaaraa979719
moobaaraa123456
只需搜索一个模式,结束979719
并打印该行:
$ sed -n '/^.*979719$/p' file
moobaaraa979719
moobaaraa979719
答案 2 :(得分:0)
此代码有效:
awk 'length($1) == 9' FS="979719" raw-text-file
此代码将979719设置为字段分隔符,并检查第一个字段的长度是否为9个字符。然后打印该行(作为默认操作)。
答案 3 :(得分:0)
awk 'substr($0,10,6) == 979719' file
如果要从第10个字符搜索到每行的末尾,可以删除,6
。