我不知道该如何更改:
\usepackage{scrpage2}
\usepackage{pgf} \usepackage[latin1]{inputenc}\usepackage{times}\usepackage[T1]{fontenc}
\usepackage[colorlinks,citecolor=black,filecolor=black,linkcolor=black,urlcolor=black]{hyperref}
仅使用sed
REPLACED
REPLACED REPLACEDREPLACEDREPLACED
REPLACED
我正在尝试类似sed 's!\\.*\([.*]\)\?{.\+}!REPLACED!g' FILE
但这给了我
REPLACED
REPLACED
REPLACED
我认为。*会被使用,并且我模式中的其他所有内容都将被忽略,但是我不知道该怎么做。
了解了如何格式化正则表达式之后,下一步就是将其更改为:
\usepackage{scrpage2}
\usepackage{pgf}
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage[colorlinks,citecolor=black,filecolor=black,linkcolor=black,urlcolor=black]{hyperref}
所以,我也很高兴朝着这个方向发展。
答案 0 :(得分:2)
以下代码恰好适用于您给出的示例:
sed 's/\\[^\\[:space:]]\+/REPLACED/g'
即匹配一个反斜杠,后跟一个或多个非空格字符或另一个反斜杠。
要使事情更具体,可以使用
sed 's/\\[[:alnum:]]\+\(\[[^][]*\]\)\?{[^{}]*}/REPLACED/g'
即匹配一个反斜杠,后跟一个或多个字母数字字符,再跟一个可选的[ ]
组,再跟一个{ }
组。
[ ]
组匹配[
,后跟零个或多个非括号字符,后跟]
。
{ }
组匹配{
,后跟零个或多个非花括号字符,后跟}
。
答案 1 :(得分:1)
抢救Perl!它具有“节俭量词”的功能:
perl -pe 's!\\.*?\.?{.+?}!REPLACED!g' FILE
请注意,我删除了捕获组,因为您没有在任何地方使用它。另外,[.*]
匹配点或星号,但您可能想匹配文字点。