キーワードを含む列のヘッダー(最初の行)を検索したいタブ区切りファイルがあります。その後、ファイルの残りの部分でのみその列を印刷したいと思います。
このサンプルファイルでは:
sample AAA BBB sample_CCC DDD EEE sample_FFF
000 aaa bbb ccc ddd eee fff
私は次のようなものを得たいと思います:
sample sample_CCC sample_FFF
000 ccc fff
私は試した:
awk -F"\t" '{for(i=1;i<=NF;i++){if ($i ~ /sample/){print $i}}}' filename > outputfile
ただし、これは、対応する文字列(sample)を含む列(sample_CCC、Sample_FFF)ではなく、正確な文字列(sample)を持つ列のみを抽出します。
文字列と正確に一致しませんが、それを含む列を抽出するようにこのコードを変更する方法はありますか?
ベストアンサー1
Perlはきちんとした解決策を提供します。
perl -ale '
@cols = grep {$F[$_] =~ /sample/} 0..$#F if $. == 1;
print "@F[@cols]";
' file