このテキストファイル()から行を削除しようとしていますfoo.txt
。
cat
mouse
animals: 2
最後から2行を削除したいです。
animals: 2
だから私はついに次の結論に達しました。
cat
mouse
ただし、これを使用すると、variable="$(sed '$d' foo.txt)"
1つだけ指定しましたが、両方の行が削除されたように見えます$d
。これにより、私が望む結果を得ることができますが、なぜこれが起こるのか疑問に思うことはできません。出力を変数に保存したくない場合は、次のような出力が表示されます。
user$ sed '$d' foo.txt
cat
mouse
user$
奇妙なことは、を使用するとその行$ sed '$d;$d' foo.txt
だけがanimals: 2
削除され、その前の改行文字は削除されないことです。
誰でも私のためにこの謎を解くことができますか?ありがとうございます。
参考までに、この例ではBSD sedを使用しました。