我想用;
替换文件中的|
,但忽略双引号内的分号。我想使用sed -I
选项
输入:1;2;"3;4;5"
预期输出:1|2|"3;4;5
答案 0 :(得分:0)
GNU AWK
解决方案:
示例input.txt
文件:
1;2;"3;4;5"
6;"7;8;9";10
工作:
awk -v FPAT='[^;]+|"[^"]+"' '{ for(i=1;i<=NF;i++) printf "%s%s",$i,(i==NF? ORS:OFS) }' OFS='|' input.txt
输出:
1|2|"3;4;5"
6|"7;8;9"|10