私はawkを使用しており、任意の数のテキストファイル(引数)をスクリプトに送信し、入力ファイルごとに「何かを印刷」したいと考えています。
ここでスクリプトを見つけました
そして、スクリプトをこれに変更しました
awk -v nfiles="10" 'NR==FNR{a[$0]++;next}
$0 in a {a[$0]++; next}
{b[$0]++}
END{
for(i in a){
if(a[i]==nfiles) {
print i > "output1"
}
else if(a[i]==1) {
print i > "output3"
}
}
for(i in b){
if(b[i]==nfiles-1) {
print i > "output2"
}
}
}' "$@"
nfiles="10"
問題は、任意の数のテキスト引数であると想定されているため、何を書き込むかです。
また、このスクリプトはよくわかりません。このセクションのみを実行します
else if(a[i]==1) {
print i > "output3"
}
そして、file1.txt からの情報のみを出力します。$3
残りを実行しないのはなぜですか。また、すべてのファイルから行 3 ( ) のすべてを に出力したい場合はどうすればよいでしょうoutput3
か? ありがとう =)