![sed 删除了两行而不是一行,为什么?](https://linux22.com/image/179382/sed%20%E5%88%A0%E9%99%A4%E4%BA%86%E4%B8%A4%E8%A1%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E4%B8%80%E8%A1%8C%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F%20.png)
我正在尝试从此文本文件 ( ) 中删除行foo.txt
:
cat
mouse
animals: 2
我想从末尾删除两行:
animals: 2
所以我最终得出这样的结论:
cat
mouse
然而,当使用 时variable="$(sed '$d' foo.txt)"
,两行似乎都被删除,即使我只指定了一行$d
。尽管这给了我想要的结果,但我忍不住想知道为什么会发生这种情况。当尝试不将输出存储在变量中时,我得到了我期望看到的输出:
user$ sed '$d' foo.txt
cat
mouse
user$
奇怪的是,使用$ sed '$d;$d' foo.txt
仅删除该animals: 2
行,而不删除它之前的换行符。
有人能为我揭开这个神秘面纱吗?谢谢。
根据记录,本例中使用的是 BSD sed。