我想用awk搜索一個文件,輸出具有從特定列號開始的值的行。例如在具有特定列值的行上進行awk模式匹配。無分隔符
我想找979719開始列編號10:
moobaaraa**979719**
moobaaraa123456
moo**979719**123456
moobaaraa**979719**
moobaaraa123456
正如你所看到的,有沒有分隔符。它是一個原始數據文本文件。我想輸出第1行和第4行。不是第3行包含模式,但不在所需的列號。
我想用awk搜索一個文件,輸出具有從特定列號開始的值的行。例如在具有特定列值的行上進行awk模式匹配。無分隔符
我想找979719開始列編號10:
moobaaraa**979719**
moobaaraa123456
moo**979719**123456
moobaaraa**979719**
moobaaraa123456
正如你所看到的,有沒有分隔符。它是一個原始數據文本文件。我想輸出第1行和第4行。不是第3行包含模式,但不在所需的列號。
一個簡單的sed
方法。
$ cat file
moobaaraa979719
moobaaraa123456
moo979719123456
moobaaraa979719
moobaaraa123456
只要搜索的模式,爲此的了979719
並打印線:
$ sed -n '/^.*979719$/p' file
moobaaraa979719
moobaaraa979719
此代碼:
awk 'length($1) == 9' FS="979719" raw-text-file
此代碼設置979719作爲字段分隔符,並檢查第一個字段的長度是否爲9個字符。然後打印行(作爲默認操作)。
awk 'substr($0,10,6) == 979719' file
,如果你想從10字符搜索到每一行的末尾,你可以刪除,6
。
awk '/979719$/' file
moobaaraa979719
moobaaraa979719
大蘋果!十分簡單! –
這必須用'awk'來完成,還是需要任何方法? –