2016-02-24 20 views
0

我有這種格式的一個巨大的製表符分隔的文件:剪切從輸入和顯示的每一行特定的字符串作爲一列在輸出

AN_NFE=6958  AC_SAS=1  AN_SAS=7704  AF=1.022e-05  
AC_OTH=0  AN_OTH=118  AC_SAS=6  AN_SAS=7360  
AN_NFE=2754  AC_OTH=0  AN_OTH=116  AC_SAS=14   

每一行包含「AC_SAS」,但在不同列中的值。我想,從各行其價值,並輸出到grep 「AC_SAS」 的所有記錄作爲一列,就像這樣:

AC_SAS=1 
AC_SAS=6 
AC_SAS=14 

回答

2

您可以使用grep

grep -o -E 'AC_SAS=[0-9]+' huge_file.txt > ac_sas.txt 

這裏,-o只打印匹配內容,並且>寫入一個新文件(在這種情況下稱爲「ac_sas.txt」)。或者您可以省略> filename部件打印到標準輸出。

+0

好,它的工作:) –

1
sed 's:^.*\(AC_SAS=[0-9]\+\).*:\1:' yourfile.txt 
+0

它也有效:) –

0

您可以使用awk來做好這項工作和格式如下,

awk '{for(i=1;i<=NF;i++){if($i~/^AC_SAS/){print $i}}}' filename 
0

這可能爲你工作(GNU SED):

sed -r 's/\s+/\n/;/^AC_SAS/P;D' file 

一個換行符和打印替換空間以所需字符串開頭的行。

相關問題