我正在尝试转变:
pid 2928's current affinity list: 0-3 pid 2928's new affinity list: 0
到
2928: 0-3 --> 0
目前,我有以下可以正常工作的转换:
正则表达式:pid
输出:2928's current affinity list: 0-3 2928's new affinity list: 0
正则表达式:'s current affinity list
输出:2928: 0-3 2928's new affinity list: 0
然后是最终的正则表达式,它不能正常工作:
正则表达式:(\d+)(.)(.)(.)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))
输出:2928: 0-3 2928's new affinity list: 0
如您所见,它没有正确应用正则表达式。如果您在在线测试器中测试此正则表达式,您可以看到它确实选择了正确的区域进行删除。
完整命令:
echo "pid 2928's current affinity list: 0-3 pid 2928's new affinity list: 0" | sed -e "s/pid //g" -e "s/'s current affinity list//g" -e "s/(\d+)(.)(.)(.)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))(\s+)((?:[a-z][a-z]+))/-->/gim"
我不能在第三个-e
sed 中正确执行正则表达式。这看起来有什么问题吗?