使用SED处理单引号和双引号

时间:2015-10-09 08:37:49

标签: regex shell sed

假设我有一个文件test.txt,其中包含以下内容:

This or 
'is nothing or' 
or 
"that or" 
if it is or

现在我想替换引号中不存在的or(单引号或双引号)。我希望使用sed来实现这一目标。所以我的输出就像:

 This OR 
 'is nothing or' 
 OR 
 "that or" 
 if it is OR

我认为使用awk可以实现这一点,但任何人都可以使用sed执行此操作。我在cygwin上这样做。

1 个答案:

答案 0 :(得分:0)

我找到了答案。我们可以通过使用单引号和双引号的十六进制值来忽略单引号或双引号中出现的模式。

sed -n '/\x22.*or\x22/! { /\x27.*or\x27/! {s/or/OR/g}}' input_file