尝试使用AWK删除html文件中的文本全局

时间:2012-04-12 17:46:05

标签: awk

我想在许多文件中删除一串文本。这个glob插在文件的中间。

在我的bash脚本中,我使用AWK尝试删除它。

命令如下:

awk '/</SCRIPT>/{p=1;print}</script>/{p=0}!p'

其中</SCRIPT>是开始并且结束。

目标是让awk在文件中删除以</SCRIPT>开头并以</script>结尾的所有文本以及介于两者之间的所有内容,并保持顶部和底部html不受影响。

我在脚本的开头和结尾添加了-x和+ x,以查看它失败的位置。

awk告诉我这个:

awk: /</SCRIPT/>{p=1;print}/</script>{p=0}!p
awk:                        ^ syntax error

SS64告诉我:

  

gawk'将在以下任何一项后忽略换行符:

 , { ? : || && do else"

所以我认为我需要隔离“&lt;”在我的awk命令中,它没有被列为一个麻烦的变量......

我该怎么做,为什么awk不抱怨这样?

awk: /</SCRIPT/>{p=1;print}/</script>{p=0}!p
awk:  ^ syntax error        ^ syntax error

2 个答案:

答案 0 :(得分:3)

你需要逃离匹配中的/

awk '/<\/SCRIPT>/{p=1;print} /<\/script>/{p=0}!p'

答案 1 :(得分:2)

如果您尝试删除开头和结尾标记以及其间的所有文本,则应使用:

awk '/<\/SCRIPT>/{p=1}; !p; /<\/script>/{p=0}' file