我有以下代码
cat file1 | sed '0,/2014-08-30/d'
在file1里面,有
2014-08-30
2015-03-29 + /homes/eva/xv/xvalen20/aaa
2015-03-29 + /homes/eva/xv/xvalen20/IZP/blabla
2015-03-29 + /homes/eva/xv/xvalen20/IZP/wg*d s1a
2015-03-29 + /homes/eva/xv/xvalen20/IZP/wg*ds1a
2015-03-29 + /homes/eva/xv/xvalen20/newfile
2015-03-29 + /homes/eva/xv/xvalen20/wgdsa
在 Linux 机器上,输出与 file1 相同,除了第一行(这就是我的目标)。在 FreeBSD 机器上,输出与 file1 内容完全相同。
我发现了一些关于 sed 之间差异的网站,但我无法弄清楚这个。
最佳答案
Mac OS X 上的 BSD sed
也不喜欢 0
行号。
解决方法:
(echo "Hello"; cat file) | sed '1,/2014-08-30/d'
这会给出包含您想要删除的 Hello
的第 1 行,并在包含 2014-08-30
的行之后停止删除。它与 GNU 和 BSD 版本的 sed
的工作方式相同。
关于linux - Linux 上的 sed 与 FreeBSD 上的 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334537/