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):
用换行符替换空格,并打印以所需字符串开头的行