将具有多个文件名的`sed`的单个实例跳到下一个文件

时间:2018-03-14 12:44:21

标签: sed

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

1 个答案:

答案 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