Linux
提取具有特定前綴的單詞
我有一個文件,其中包含以下行:
27/12/20 | 05:50:48pm | abcdefgh |ID:1:418856791 | jack | 1.1.1.1:1111 | IN | GN-4536 | LOL | 0 27/12/20 | 05:51:44pm | abcdefgh |ID:1:503729784 | jill | 2.2.2.2:2222 | IN | GN-497187 | LOL2 | 0
有一個帶有這樣行的大文件。如何僅從該文件中提取
GN-4536
和提取?GN-497187
喜歡它可以是任何東西GN<-numbers>
。如何以如下格式獲取輸出:GN-number GN-number GN-number GN-number
我嘗試使用
sed
和grep
命令,但它可以提取數字。
這很容易
cut
:$ cut -f8 -d'|' filename GN-4536 GN-497187
這削減了由(必須從外殼中轉義)
8
限定的欄位。f``d``|
但它留在空白處。你可以用
tr
.$ cut -f8 -d'|' filename | tr -d ' ' GN-4536 GN-497187
我們可以嘗試使用以下命令,經過測試並且工作正常
awk '{for(i=1;i<=NF;i++){if($i ~ /^GN-[0-9]*$/){print $i}}}' filename
輸出
GN-4536 GN-497187