【问题标题】:what does -s option mean in GNU sed?-s 选项在 GNU sed 中是什么意思?
【发布时间】:2017-05-31 20:36:01
【问题描述】:

我已经阅读了sed-s 选项手册。上面写着:

-s --separate 默认情况下,sed 会将命令行上指定的文件视为单个连续的长流。这个 GNU sed 扩展名允许用户将它们视为单独的文件:范围 地址(例如'/abc/,/def/')不允许跨越多个 文件,行号相对于每个文件的开头,$ 指 到每个文件的最后一行,以及从 R 命令调用的文件 在每个文件的开头重绕。

在同一个中添加 -s 和不添加 -s

[root@kvm ~]# cat 1 |sed -s   -n '/1/p'
12345a6789a99999a
12345a6789a99999b

[root@kvm ~]# cat 1 |sed     -n '/1/p'
12345a6789a99999a
12345a6789a99999b

1 file is 
cat 1
12345a6789a99999a
12345a6789a99999b

如何使用-s?

【问题讨论】:

    标签: bash sed


    【解决方案1】:

    只有给sed多个文件才重要。

    如果您不指定 -s 标志,sed 将像文件内容已连接到单个流中一样:

    echo "123
    456
    789" > file1
    echo "abc
    def
    ghi" > file2
    
    # input files are considered a single stream of 6 lines, whose second to fourth are printed
    sed -n '2,4 p' file1 file2 
    
    456    # stream 1, line 2
    789    # stream 1, line 3
    abc    # stream 1, line 4
    
    
    # there are two distinct streams of 3 lines the 2nd and 3rd of each are printed
    sed -ns '2,4 p' file1 file2
    
    456    # stream 1, line 2
    789    # stream 1, line 3
    def    # stream 2, line 2
    ghi    # stream 2, line 3
    

    【讨论】:

    • 很好的例子选择和很好的解释
    • 能否请您解释一下如何做多行?
    • @tatsu 我不确定你在说什么,但我不明白它与sed-s 标志的描述有什么关系。我想你会想搜索一个更相关的问题或问你自己的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多