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