当我执行命令
echo '<test>' | sed -e 's/<\(.*\)>/\1/g'
Run Code Online (Sandbox Code Playgroud)
我得到了字符串
test
Run Code Online (Sandbox Code Playgroud)
回.当我执行命令
echo 'Jun 10 13:23:16 server /opt/app/introdedaemon/sbin/mq2init[14150]: Debug 1433935396.995245: (XMLRPCConnector.cpp)(MQMessage)(98)[domt initrode.om]: encoded string: <aGVyZSBpcyBub3RoaW5n c3RpbGwgbm90aGluZw== > (size 908)' | sed -e 's/<\(.*\)>/\1/g'
Run Code Online (Sandbox Code Playgroud)
我希望得到这个字符串
aGVyZSBpcyBub3RoaW5n c3RpbGwgbm90aGluZw==
Run Code Online (Sandbox Code Playgroud)
回来了,但不是我得到的字符串
Jun 10 13:23:16 server /opt/app/introdedaemon/sbin/mq2init[14150]: Debug 1433935396.995245: (XMLRPCConnector.cpp)(MQMessage)(98)[domt initrode.om]: encoded string: aGVyZSBpcyBub3RoaW5n c3RpbGwgbm90aGluZw== (size 908)
Run Code Online (Sandbox Code Playgroud)
背部.为什么会发生这种情况,并且我可以将正则表达式返回到字符串的"<"和">"之间
Jun 10 13:23:16 server /opt/app/introdedaemon/sbin/mq2init[14150]: Debug 1433935396.995245: (XMLRPCConnector.cpp)(MQMessage)(98)[domt initrode.om]: encoded string: <aGVyZSBpcyBub3RoaW5n c3RpbGwgbm90aGluZw== > (size 908)
Run Code Online (Sandbox Code Playgroud)
?
你需要使用:
sed 's/.*<\(.*\)>.*/\1/'
Run Code Online (Sandbox Code Playgroud)
因为之前<和之后>也有文字.
这将输出为:
aGVyZSBpcyBub3RoaW5n c3RpbGwgbm90aGluZw==
Run Code Online (Sandbox Code Playgroud)
您也可以使用这个更简单的命令获得相同的输出awk:
awk -F '[<>]' '{print $2}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |