【发布时间】:2020-04-02 09:16:17
【问题描述】:
以下是我的 sed 脚本:
#!/bin/bash
sed -r 's/^\s+?\/\/.*$/d/;
s/LOG.debug/System.out.println/g' "$1"
第一个命令应该做的是删除所有以// 开头的行,前面有任意数量的空格或制表符。唯一的问题是它没有删除这些行,而是用文字 'd' 替换它们。
【问题讨论】:
-
我的回答有帮助吗?
以下是我的 sed 脚本:
#!/bin/bash
sed -r 's/^\s+?\/\/.*$/d/;
s/LOG.debug/System.out.println/g' "$1"
第一个命令应该做的是删除所有以// 开头的行,前面有任意数量的空格或制表符。唯一的问题是它没有删除这些行,而是用文字 'd' 替换它们。
【问题讨论】:
如果您需要删除匹配的行,则不应使用s 命令。
使用
sed '/^[[:blank:]]*\/\//d; s/LOG\.debug/System.out.println/g' "$1"
# ^^^^^^^^^^^^^^^^^^^^
另外,请注意,要匹配文字点,您需要对其进行转义,因此,LOG\.debug。
【讨论】: