我有以下代码
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
的行之后停止删除。 Goji和BSD版本的sed
都可以使用。关于linux - 在Linux和FreeBSD上进行sed,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29334537/