我有一个用逗号 ( ,)分隔的输入文件。有一些用双引号括起来的字段中包含逗号。这是示例行
123,"ABC, DEV 23",345,534.202,NAME
Run Code Online (Sandbox Code Playgroud)
我需要删除双引号和双引号内出现的所有逗号。所以上面的行应该被解析为如下所示
123,ABC DEV 23,345,534.202,NAME
Run Code Online (Sandbox Code Playgroud)
我尝试了以下使用sed但没有给出预期的结果。
sed -e 's/\(".*\),\(".*\)/\1 \2/g'
Run Code Online (Sandbox Code Playgroud)
任何快速的运用了sed,awk或者任何其他Unix工具吗?
我awk '{ gsub(/BAR|WIBBLE/, "FOO"); print }'用来替换数据中的文本,如:
SOMETHING [BAR, WIBBLE]
SOMETHING [BAR]
Run Code Online (Sandbox Code Playgroud)
这给出了所需的结果:
SOMETHING [FOO, FOO]
SOMETHING [FOO]
Run Code Online (Sandbox Code Playgroud)
但是现在我不得不更新需要替换的文本,如下所示:
awk '{ gsub(/BAR|WIBBLE|ME/, "FOO"); print }'
Run Code Online (Sandbox Code Playgroud)
这将文本变成:
SOMETHING [ME, WIBBLE]
Run Code Online (Sandbox Code Playgroud)
进入:
SOFOOTHING [FOO, FOO]
Run Code Online (Sandbox Code Playgroud)
如何将我的替换限制为括号之间的文本(即SOMETHING单独保留)?
编辑
我还需要任何文本的稳健性SOMETHING(例如SHE GAVE ME THAT不应该ME被替换)。