Awk 从每行输入中剪切一个特定字符串,并在输出中显示为一列

Awk 从每行输入中剪切一个特定字符串,并在输出中显示为一列,awk,sed,Awk,Sed,我有一个巨大的制表符分隔文件,格式如下: 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”值,但列不同。我想用每行的值对“AC

我有一个巨大的制表符分隔文件,格式如下:

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”值,但列不同。我想用每行的值对“AC_SAS”的所有记录进行grep,并输出为一列,如下所示:

AC_SAS=1  
AC_SAS=6  
AC_SAS=14  

您可以使用
grep

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

这里,
-o
只打印匹配的内容,
写入一个新文件(在本例中称为“ac_sas.txt”)。或者您可以省略要打印到标准输出的
部分。

您可以使用
grep

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

这里,
-o
只打印匹配的内容,
写入一个新文件(在本例中称为“ac_sas.txt”)。或者您可以省略要打印到标准输出的
部分。

您可以使用awk完成此工作,格式如下所示

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

awk'{for(i=1;i您可以使用awk来完成此工作,格式如下所示

awk '{for(i=1;i<=NF;i++){if($i~/^AC_SAS/){print $i}}}' filename
awk'{for(i=1;i这可能适合您(GNU-sed):

用换行符替换空格,并打印以所需字符串开头的行。

这可能适合您(GNU-sed):

用换行符替换空格,并打印以所需字符串开头的行