【问题标题】:What does the `l` option mean in GNU sed?GNU sed 中的“l”选项是什么意思?
【发布时间】:2016-08-29 16:21:52
【问题描述】:

我已经阅读了sed 的-l 命令手册。上面写着:

-l
--line-length=N

指定l 命令的默认换行长度。长度为 0(零)表示从不换行。如果不指定,则取70。

我不知道这有什么用。谁能给我一个例子?

我认为是这样,但结果是:

[root@kvm ~]# echo 'abcdefg' | sed -l 3  -n '/a/p'
abcdefg

【问题讨论】:

    标签: bash sed


    【解决方案1】:

    为什么不试试看呢?

    $ echo 'abcdefg' | sed -l 3 'l'
    ab\
    cd\
    ef\
    g$
    abcdefg
    
    $ echo 'abcdefg' | sed -l 4 'l'
    abc\
    def\
    g$
    abcdefg
    

    【讨论】:

    • +1。看起来 OP 确实尝试过,但错过了文档中“for the l command”短语的重要性(由于没有意识到“command”和“option”在 sed 中是分开的)。
    • (s)他在我发布答案后添加了该问题的尝试。之前的问题结束于Can someone give me an example?。
    【解决方案2】:

    来自sed manual:

    接受地址范围的命令

    ...

    l 在“视觉上明确”中列出当前行 表格。

    l width 在``视觉上列出当前行 明确的''形式, 在宽度字符处打破它。这是一个 GNU 扩展。

    -l N, --line-length=N 选项允许为 '@ 指定所需的换行长度987654329@' 命令(当 sed 脚本中未明确提供 wrap-width 参数时)。

    $ echo abcdefgh | sed -n 'l 5'
    abcd\
    efgh$
    $ echo abcdefgh | sed -n -l 5 'l'
    abcd\
    efgh$
    $ echo abcdefgh | sed -n -l 5 'l 3'
    ab\
    cd\
    ef\
    gh$
    

    【讨论】:

    • 使用大写字母“L”,不会添加换行符和 eof 的明确标记,从而更容易将文本文件格式化为 70 个字符。 sed -n -l 70 'L'
    猜你喜欢
    • 1970-01-01
    • 2010-11-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2013-10-06
    • 1970-01-01
    相关资源
    最近更新 更多