我知道在某些情况下,/
以外的其他字符可用于sed
表达式:
sed -e 's.//..g' file
将//
替换为file
中的空字符串,因为我们使用.
作为分隔符。
但是,如果您要删除//comment
中与file
匹配的行?
sed -e './/comment.d' file
返回
sed: -e expression #1, char 1: unknown command: `.'
答案 0 :(得分:6)
您可以使用静止使用备用分隔符:
sed '\~//~d' file
只需逃离定界仪的开始。
答案 1 :(得分:0)
要删除带有注释的行,请从下面的这些Perl单行代码中选择。它们都使用app.component('child-component', {
mounted() {
console.log(this.foo) // 'bar'
}
})
形式的正则表达式定界符,而不是更常用的m{}
。这样,您就不必像这样//
来转义斜线,这会使双斜杠的可读性降低:\/
。
创建示例输入文件:
/\/\//
删除以以注释开头的行:
echo > in_file \
'no comment
// starts with comment
// starts with whitespace, then has comment
foo // comment is anywhere in the line'
输出:
perl -ne 'print unless m{^//}' in_file > out_file
删除以可选空格开头,后跟注释的行:
no comment
// starts with whitespace, then has comment
foo // comment is anywhere in the line
输出:
perl -ne 'print unless m{^\s*//}' in_file > out_file
删除在任何地方有评论的行:
no comment
foo // comment is anywhere in the line
输出:
perl -ne 'print unless m{//}' in_file > out_file
Perl单行代码使用以下命令行标志:
no comment
:告诉Perl在代码中而不是在文件中查找代码。
-e
:一次循环输入一行,默认情况下将其分配给-n
。
另请参见:
perldoc perlrun
: how to execute the Perl interpreter: command line switches
perldoc perlre
: Perl regular expressions (regexes)
perldoc perlrequick
: Perl regular expressions quick start