テキストファイルから不要な行を削除する

テキストファイルから不要な行を削除する

sed私が必要とするのは、テキストファイルから偶数行またはコードを削除することだけです。awk特別なことはありません。テキストファイルの偶数行から無関係なデータを削除するだけです。

答え1

簡単に:

sed 'n;d' file

偶数行の場合

sed '1!n;d' file

奇数行の場合。

GNU 実装では、sed次の構文も使用できます。

奇妙な:

sed '1~2d' file

でも:

sed '2~2d' file

答え2

これにより、不要なテキスト行を削除できます。

sed -i '/[REGEX]/d' <FILE> 

[REGEX]不要なテキスト行と一致する正規表現であり、<FILE>テキストを削除するファイルの名前はどこですか?//d次のように削除()コマンドをネストできます。

sed '/[REGEX]/d ; /[REGEX]/d ; /[REGEX]/d'

例は次のとおりです。

echo "a" > file ; echo "abcd" >> file 
sed -i '/^a$/d' file
cat file # => abcd

使用しているバージョンがsedこのオプションをサポートしていない場合は、-i次のコマンドを使用して同じ効果を得ることができます。

cat file | sed '/[REGEX]/d' > file_2 && cat file_2 > file && rm file_2



賢い人に一言

cat fileright back の出力をリダイレクトすると、目的のfile効果は表示されません。実際にはfile完全に切り取られます。つまり、完全に切り捨てられます。削除 file

だからいいえこれを行う:

cat file | sed '/[REGEX]/d' > file

答え3

これは解決策:

奇数行の削除:

awk 'NR%2==0{ print $0 > "infile" }' infile

偶数行の削除:

awk 'NR%2{ print $0 > "infile" }' infile

上記のコマンドは関連する行を削除します。所定の位置にしたがって、infile同じ入力ファイルに出力を書き込むときは注意が必要です。

次のように他の別々のファイルに書き込むことができます。

EvenLinesこれにより、偶数行を含むファイルが生成されます。

awk 'NR%2==0{ print $0 > "EvenLines" }' infile

これはOddLines奇数行を含むファイルを生成します。

awk 'NR%2{ print $0 > "OddLines" }' infile

答え4


sed '0~2d' file

このコマンドは、ファイルから偶数行を削除するために使用されます。

関連情報