我有一个如下所示的 csv 文件:
"foo","bar","lorem","ipsum"
"foo"."bar","XX lorem","ipsum"
我需要在以“xx”结尾的字段中转换以“xx”开头的字段:
"foo","bar","lorem","ipsum"
"foo"."bar","lorem xx","ipsum"
sed(或 awk)可以帮助我吗?(“xx”是一个字符串而不是一个正则表达式结果)
sed -r 's/XX ([^"]+)/\1 XX/' filename
sed -r 's/"(XX) ([^"]*)"/"\2 \1"/g'
测试:
kent$ echo '"foo","bar","lorem","ipsum XX"
"foo"."XX bar","XX lorem","ips XX um"'|sed -r 's/"(XX) ([^"]*)"/"\2 \1"/g'
"foo","bar","lorem","ipsum XX"
"foo"."bar XX","lorem XX","ips XX um"
注意:
.*