【问题标题】:what /bin/sed '/^$/d'| /bin/sed -e 's/^[ \t]*//' mean?什么 /bin/sed '/^$/d'| /bin/sed -e 's/^[ \t]*//' 是什么意思?
【发布时间】:2015-05-18 06:49:51
【问题描述】:

请解释以下行中的两个“sed”命令:

/bin/cat $TMPFILE |  /bin/sed '/^$/d'| /bin/sed -e 's/^[ \t]*//' > $RPTFILE

提前致谢, 贝蒂

【问题讨论】:

    标签: unix sed command


    【解决方案1】:

    sed '/^$/d'删除空行
    sed -e 's/^[ \t]*//'删除前导空格和制表符。

    ^ 行首 $ 行尾,所以 ^$ 行只有开始和结束,没有数据。
    [ \t]* 空格或制表符组 (\t)。 * 重复零次或多次。

    【讨论】:

    • 您可以补充一点,2 可以使用 sed '/^$/d;s/^[ \t]*//' 或更好的 '/^$/d;s/p[[:space:]]*//' 构建在 1 个 sed(避免管道)中
    • @NeronLeVelu 是的,但 OP 询问含义:) 更新了我的帖子。
    • 第二个不是“仅删除带有制表符和空格的行”,而是“删除前导空格和制表符”。而[ \t] 最好写成[[:blank:]]
    • 感谢 NeronLeVelu、Jotne 和 Glenn!
    猜你喜欢
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多