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 file
right 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
このコマンドは、ファイルから偶数行を削除するために使用されます。