重複を避けるために単語リストに単語を追加するには、sort -uを使用します。

重複を避けるために単語リストに単語を追加するには、sort -uを使用します。

重複したone.txtという2つのtxtファイルがあります。

yesterday
yesterday
today
today
tomorrow
tomorrow

2番目のtxtはtwo.txtと呼ばれ、重複した内容が含まれています。

mike
mike
paul
paul
tomorrow
tomorrow

このコマンドを使用すると、sort -u one.txt > total.txt出力ファイルを取得できます。

today
tomorrow
yesterday

したがって、次のようにsort -u two.txt >> total.txtして、同じ出力ファイルに2番目のファイルを追加しました。

today
tomorrow
yesterday
mike
paul
tomorrow

「明日」という言葉を2回使った。それを避ける方法?

sed 's/[[:space:]]+$//' one.txt two.txt | sort -u total.txt

解決策のように見えますが、次のような別の単語のリストを追加しようとするたびに問題が発生します。

sed 's/[[:space:]]+$//' three.txt | sort -u total.txt

ベストアンサー1

total.txtソートされた順序(mikeおよびで始まる)に移動するには、paul次のいずれかを実行できます。

  • sort -u one.txt two.txt > total.txtまたは
  • sort -u total.txt two.txt -o total.txt

順序を維持する必要がある場合(one.txt最初にコンテンツをソートしてからコンテンツをソートする)two.txt とは別に)one.txt次に実行

  • sort -u two.txt | awk '!seen[$0]++' total.txt - > temp.txt; mv temp.txt total.txt

これは次のとおりです。

  • (cat total.txt; sort -u two.txt) | awk '!seen[$0]++' > temp.txt; mv temp.txt total.txt

つまり、取得したコンテンツtotal.txt (既に並べ替えと重複排除済み)と並べ替えられ、重複排除されたコンテンツが後で配信されますtwo.txt以前に録音された awkソートされていないファイルを重複排除するコマンド。

おすすめ記事