我试图|
在文本上使用sed删除引号中的定界符,该文本包含日期,空值和带有管道定界符的字符串。我使用以下sed可以正常工作,但是在日期之间删除了分隔符。任何帮助将不胜感激。
sed -E 's/(^|[^"|])\|($|[^"|])/\1 \2/g' <file>
输入:
"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"|
预期产量:
"Southern Palms"|"AA None"|"4"|"Ken Coast"|1/11/2019 00:00:00|30/4/2020 00:00:00|"TH"|
怎么样:
sed -E 's/(\w+)\|(\w+)/\1 \2/g' testfile.txt
\ w + \ | \ w +像这样在两个单词之间匹配管道符号,<word1>|<word2>
并将其替换为两个单词,并用空格隔开<word1> <word2>
如果要匹配引号,请使用:
sed -E 's/("\w+)\|(\w+")/\1 \2/g' testfile.txt
匹配"<word1>|<word2>"
并替换为"<word1> <word2>"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句