我想使用sed将STATUS:CONFIRMED
更改为<STATUS>CONFIRMED</STATUS>
是否可能?我已经可以使用以下命令将BEGIN:VEVENT
更改为<VEVENT>
:
sed -i 's|BEGIN:VEVENT|<VEVENT>|g' nameoffile.html
但我无法找到改变方法STATUS:CONFIRMED
答案 0 :(得分:0)
为什么不能这样做:
sed -i "s|STATUS:CONFIRMED|<STATUS>CONFIRMED</STATUS>|g" nameoffile.html
经过测试和工作:
bash-4.3$ cat > example
begin:vevent
status:confirmed
bash-4.3$ sed -i "s|status:confirmed|<status>confirmed</status>|g" example
bash-4.3$ tail example
begin:vevent
<status>confirmed</status>
bash-4.3$ sed --version
sed (GNU sed) 4.2.2
我仔细检查过,实际上没有必要在前一个命令中转义任何字符。
可能存在与输入数据有关的问题,可能有助于我们提供有关您要更改的输入的更多信息。
修改强>
如果您想将方法概括为任何其他“状态”类型,您可以使用捕获的组:
sh-4.3$ tail example
begin:vevent
status:unknown
sh-4.3$ sed "s|status:\(\w+\)|<status>\1</status>|g" example
begin:vevent
<status>unknown</status>