this is message1;num:10;
this is message2;num:20;
我想搜索num:
和;
之间的值,即10
,20
,并将其插入到行的开头。
10 this is message1
20 this is message2
如何使用shell脚本执行此操作?
答案 0 :(得分:4)
$ awk -F'[;:]' '{print $3, $1}' file
10 this is message1
20 this is message2
答案 1 :(得分:1)
使用sed:
sed -e 's/\(.*\);num:\([^;]\+\);/\2 \1/'
如果你的sed实现支持扩展的正则表达式,你可以使它更具可读性:
sed -re 's/(.*);num:([^;]+);/\2 \1/'
第一对括号记住该消息,第二对括号记住该号码。然后该行以相反的顺序被两个记住的字符串替换。