如何使用sed或awk替换空格后面的等号,用符号^^作为分隔符

时间:2017-03-09 01:09:02

标签: awk sed

输入文件格式

Text test=123 session_id=12356 Browser_ID=23466 url=http://test.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-%28Java%29
Text test=213 session_id=23561 Browser_ID=24661 url=http://test.com/

预期输出格式

Text test1=123^^session_id=12356^^Browser_ID=23466^^url=http://test.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-%28Java%29
Text test2=213^^session_id=23561^^Browser_ID=24661^^url=http://test.com/

3 个答案:

答案 0 :(得分:1)

这应该做......

sed -E 's/(=[^= ]+) /\1^^/g' file

答案 1 :(得分:0)

如果你想要(GNU)-awk:

awk -v OFS="^^" '{ gsub(/test/,"test"NR); $1=$1" "$2; for(i=3; i<=NF; i++)$(i-1)=$i; NF--;  print }' file

答案 2 :(得分:0)

总是一个很好地了解数据的情况,但假设我们只是从第二个空间替换到最后,你可以这样做:

sed ':a s/ /^^/2;ta' file