我有一堆字符串:
pipe 1/4"" square
3" bar
3/16"" spanner
nozzle 2""
1/2"" tube pipe with 6"" cut out
我想用Regex替换字符串中的2个双引号。我已经在一些references的帮助下尝试了一些代码,但似乎做不到。
理想情况下,一旦注册了RegEx,我想将其传递给$var
,我可以在我的脚本中进一步调用。
问:用Bash执行此操作的正则表达式是什么?
答案 0 :(得分:2)
您可以使用sed
:
sed 's/""/"/g' input_file > output_file
或者,逐行处理输入并使用参数扩展:
while read -r line ; do
line=${line//\"\"/\"}
echo "$line"
done < input_file
sed中的 /g
和扩展中的//
用于同一目的:他们将在一行的所有匹配项上应用替换。
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以使用gawk:
echo $varName | gawk '{ gsub(/""/,"\"") } 1'
或sed命令:
echo $varName | sed 's/""/"/g'
我假设你的变量名为varName。
相反,如果你需要这个文件:
gawk '{ gsub(/""/,""") } 1' fileName
或
sed 's/""/"/g' fileName