私は読んだシェルコマンドを使用してASCIIファイルの最初のn行を削除する方法は?、非常に役立ちます。ただし、次のファイルがあります(2つの列を2つの異なるファイルと見なします)。
1 4
1 4
1 4
1 4
1 4
3 5
3 5
3 5
3 5
3 5
7 5
7 5
7 5
7 5
7 5
2-5行を削除してから7-10行などを削除する必要があります(有効な出力は1,3,7および4,5,5です)。
パターン(数字)が何行繰り返されるかがわかります。ただし、ここで1、3、7などの同じパターンに従うたびに、次のファイルが4、6、1、または4、5、5を持つことができるかどうかはわからないため、行数に基づいて作成する必要があります。グレブ値。
行を繰り返し削除する方法を教えてください。
答え1
あなたが探しているようですuniq
。
またはコメントから:
sed '2,5d;7,10d;12,$d'
答え2
実際に要求するのがファイルのn行ごとに出力するものであれば、次のようになります。
cat file | perl -ne '$. % 5 or print'
可能:
cat file | perl -ne '($.-1) % 5 or print'
答え3
次のコマンドを使用してください
cat filename | sort | uniq > filename2