ファイルから複数行を繰り返し削除する方法

ファイルから複数行を繰り返し削除する方法

私は読んだシェルコマンドを使用して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

関連情報