2017-08-07 37 views
0

我想用awk搜索一個文件,輸出具有從特定列號開始的值的行。例如在具有特定列值的行上進行awk模式匹配。無分隔符

我想找979719開始列編號10:

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

正如你所看到的,有沒有分隔符。它是一個原始數據文本文件。我想輸出第1行和第4行。不是第3行包含模式,但不在所需的列號。

+0

這必須用'awk'來完成,還是需要任何方法? –

回答

0

一個簡單的sed方法。

$ cat file 
moobaaraa979719 
moobaaraa123456 
moo979719123456 
moobaaraa979719 
moobaaraa123456 

只要搜索的模式,爲此的了979719並打印線:

$ sed -n '/^.*979719$/p' file 
moobaaraa979719 
moobaaraa979719 
0

此代碼:

awk 'length($1) == 9' FS="979719" raw-text-file 

此代碼設置979719作爲字段分隔符,並檢查第一個字段的長度是否爲9個字符。然後打印行(作爲默認操作)。

0
awk 'substr($0,10,6) == 979719' file 

,如果你想從10字符搜索到每一行的末尾,你可以刪除,6

1
awk '/979719$/' file 

moobaaraa979719 
moobaaraa979719 
+0

大蘋果!十分簡單! –