テキストファイルから重複したエントリ(行)を削除しようとする小さなシェルスクリプトを作成しました。スクリプトが実行され、ファイルに3行が含まれている場合、すべて同じですが、奇妙な出力が発生します。awk出力をファイルにコピーして重複を削除すると奇妙な出力が発生する
シェルスクリプトはUbuntuディストリビューションで実行されます。私のテキストファイルの
内容:
one
one
one
スクリプト私は重複を削除するために実行しています:
echo -e $(awk '!a[$0]++' /test/test.txt) > /test/test.txt
のawkは、重複を削除するように意図され、エコーながら、はファイルに出力することを意図しています。私のスクリプト、を実行する際に
I受けるファイルで、次のような出力:
one
one
また二行目の後に追加の改行、および開始時にスペースがあることに留意すべきです2行目。
あなたは 'awk '!a [$ 0] ++' /test/test.txt>/test/newtest.txt'だけで十分です。あなたはそれをエコーする必要はありません。また、入力ファイルに[DOS終了点]がないことを確認してください(http://www.cs.toronto.edu/~krueger/csc209h/tut/line-endings.html) – Inian