簡體   English   中英

或Sed條件

[英]Or condition in Sed

我正在檢查兩個sed條件,試圖添加一個sed命令,但是它不起作用。

輸入:

"Southern/Palms"|"AA|None"|"4"|"Ken|Coast"|1/11/2019 00:00:00|30/4/2020 00:00:00|"TH"|

預期產量:

"Southern Palms"|"AA None"|"4"|"Ken Coast"|1/11/2019 00:00:00|30/4/2020 00:00:00|"TH"|

試圖從雙引號字段中刪除定界符( |\\ )。

sed -E 's/(^|[^"|])\|($|[^"|]) | (^|[^"|])\\($|[^"|]) /\1 \2/g'

我也用定界符嘗試了以下方法| \\條件:

sed -E 's/(^|[^"|])\|\\($|[^"|])/\1 \2/g'

嘗試一下這個awk單線:

awk -F'"' -v OFS='"' '{for(i=2;i<=NF;i+=2)gsub(/[/|]/," ",$i)}7' file

注意:此解決方案假定所有報價都成對出現。

用我的gawk測試:

kent$  cat f
"Southern/Palms"|"AA|None"|"4"|"Ken|Coast"|1/11/2019 00:00:00|30/4/2020 00:00:00|"TH"|

kent$  awk -F'"' -v OFS='"' '{for(i=2;i<=NF;i+=2)gsub(/[/|]/," ",$i)}7' f
"Southern Palms"|"AA None"|"4"|"Ken Coast"|1/11/2019 00:00:00|30/4/2020 00:00:00|"TH"|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM