我正在尝试从此文本文件 ( ) 中删除行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。