ファイルにはFile1.txtという生データがあります。
Colt McCoy QB CLE 135 222 1576 6 9 60.8% 74.51
Josh Freeman QB TB 291 474 3451 25 6 61.4% 95.9
Matt Cassel QB KC 262 450 3116 27 7 58.2% 93.0
Michael Vick QB PHI 233 372 3018 21 6 62.6% 100.2
Matt Schaub QB HOU 365 574 4370 24 12 63.6% 92.0
ファイル2.txtには、1行に1つずつ名前のリストがあります。
Josh
Matt
名前と行番号を出力したいです。上記の例では、次のようになります。
Josh: 2
Matt: 3,5
名前と行番号のリストを提供するコマンドがありますが、上記で必要な形式で印刷したいと思います。私の現在のコマンドは
awk '{print $1, NR}' file1.txt | grep -f file2.txt
見せる
Josh 2
Matt 3
Matt 5
希望の形式で印刷するにはどうすればよいですか?
答え1
awk
自分でこれを行うことができます。
awk 'NR==FNR{seen[$1]=seen[$1]","NR; next};
{if ($1 in seen){printf("%s: %s\n", $1, substr(seen[$1], 2))}}' file2 file1
答え2
あなたはそれを使用することができますdiff -y file1 file2
。
両方のファイルを並べて出力します。また、出力を解析するための他のオプションもあります。確認するマニュアルページより多くの選択のために。