n
中的sed
ext 命令跳到下一行,但是有多个文件似乎没有任何命令可以跳到下一个文件。
是否有任何解决方法仅使用 单 调用sed
?
证明问题......
制作两个简单的3位数据文件:
seq 3 > three ; seq 10 1 13 > thirteen
显示sed
处理多个文件,(通过查找以 3 结尾的所有行并打印文件名),并且有点意识到它们是不同的对象:
sed -n '/3$/{p;F}' three thirteen
输出:
3
three
13
thirteen
下一次打印两个最后一行的尝试不起作用,或者说它的工作方式就像两个文件都是单个流一样:
sed -n '$p' three thirteen
输出:
13
答案 0 :(得分:3)
查看您的版本是否支持-s
选项:
$ seq 3 > three ; seq 10 1 13 > thirteen
$ sed -n '$p' three thirteen
13
$ sed -n '2p' three thirteen
2
$ sed -sn '$p' three thirteen
3
13
$ sed -sn '2p' three thirteen
2
11
来自man sed
:
-s, - 分离
将文件视为单独的而不是单个连续的长流。
使用-i
选项时, GNU sed
默认使用-s
。
如果-s
选项不可用,则可以选择perl
:
$ perl -ne 'print if eof' three thirteen
3
13