在特定列上具有值的行上的awk模式匹配。没有分隔符

时间:2017-08-07 17:17:26

标签: awk

我想使用awk搜索文件,以输出具有以特定列号开头的值的行。 e.g。

我从第10栏开始寻找979719:

moobaaraa**979719**
moobaaraa123456
moo**979719**123456
moobaaraa**979719**
moobaaraa123456

如您所见,没有分隔符。它是原始数据文本文件。我想输出第1行和第4行。不是第3行,它包含模式但不包含所需的列号。

4 个答案:

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