我想使用 awk 替换文件列表中的文本。我认为这是适合这项工作的工具,因为:
“在处理文本文件时,有几种任务会重复发生。您可能想要提取某些行并丢弃其余的行。或者您可能需要在某些模式出现的地方进行更改,但不理会文件的其余部分。”
http://www.gnu.org/software/gawk/manual/gawk.html
这正是我想做的。
awk 读取 filelist.txt(这是一个包含要修改的每个文件的路径的文件)匹配 pattern.txt(这是一个包含 javascript 的文件,并且是我希望从 filelist 中包含的所有 htm 文件中剔除的文件。文本)
我使用 filelist.txt 的原因是有几个文件要删除 javascript,它们位于多个位置。
我想使用 pattern.txt 的原因是 javascript 包含各种各样的东西,比如空格、特殊字符等。
如果我尝试为 awk 提供整个 javascript,我将不得不一个接一个地转义其中包含的所有特殊字符,这将非常耗时。(而且可能行不通,而且非常复杂!)
如果我尝试只放置 javascript 的开头和结尾,例如:
awk '/<\/SCRIPT>/{p=1;print}/<\/script>/{p=0}!p'
我冒着删除所有嵌入式 javascript 实例的风险,而不仅仅是想要的。
我想用 awk 做的事情可行吗?
这取决于我的信念,即为它提供文件将使它将文件的全部内容解释为模式,而不是在遇到的第一个符号上窒息。