Linux

Linux

sed 特定の場所の行をすばやく削除するために使用します。

sed '1d'
sed '5d'

しかし、ファイルの最後の行を削除したいのですが、行数がわからない場合はどうすればよいですか(wc他の方法を使用してそれを行うことができることを知っています)。

head現在、このためにtail回避策が使用され、結合されています。wcここに速い反転はありますか?

答え1

sedが$最後の行なので、最後の行を削除してください。

sed '$d' <file>

ファイルの下部から複数行を削除する方法を含めるように更新されました。

tac <file> | tail -n +3 | tac > <new_file>
  • tacファイルを読み込む(cat戻る)
  • tail -n +3行nから始まり入力を読み取る
  • tac入力を読み、順序を元の順序に戻します。

答え2

$最後の行:

sed '$d' file

答え3

cat file.txt | head -n -1 > new_file.txt

file.txt最後の行(EOFまたはで\n終わる場合EOF)によっては、このコマンドの後の行数は(存在しない場合に発生)new_file.txtと同じになることがあります。いずれにせよ、最後の行の内容は次のとおりです。削除されます。file.txt\n

また、2番目(中間)ファイルを使用する必要があることに注意してください。同じファイルをキャットしてリダイレクトすると削除されます。

答え4

Linux

$は最後の行で、dは削除を意味します。

sed '$d' ~/path/to/your/file/name

アップルシステム

sed -i と同じ

sed -i '' -e '$ d' ~/path/to/your/file/name

関連情報