首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在awk中为我的代码转义特殊字符?

如何在awk中为我的代码转义特殊字符?
EN

Stack Overflow用户
提问于 2017-08-31 23:02:22
回答 1查看 729关注 0票数 0

我使用这段代码搜索和替换当前目录中所有php文件中的文本:

代码语言:javascript
运行
复制
for file in `find * -type f -name "*.php"`; do awk 'BEGIN { RS="" } FILENAME==ARGV[1] { s="$0" } FILENAME==ARGV[2] { r="$0" } FILENAME==ARGV[3] { gsub(s,r) ; print }' "zsearch" "zreplace" "$file" > "$file"tmp7 && mv "$file"tmp7 "$file";echo "$file"; done

如果zsearch文件的内容:

代码语言:javascript
运行
复制
<br>
<center><!--LiveInternet counter--><script type="text/javascript"><!--

它运行得很好,但是如果zsearch文件的内容:

代码语言:javascript
运行
复制
<!--LiveInternet counter--><script type="text/javascript"><!--
document.write("<a href='http://www.liveinternet.ru/click' "+
"target=_blank><img src='http://counter.yadro.ru/hit?t16.6;r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' alt='' title='LiveInternet: показано число просмотров за 24"+
" часа, посетителей за 24 часа и за сегодня' "+
"border=0 width=88 height=31></a>")//--></script><!--/LiveInternet-->

它不起作用了,不能取代

我想是因为在document.write("中插入了document.write("符号

也许我需要摆脱像+ or *这样的符号

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-31 23:36:54

您的主要问题是使用regexp而不是字符串,尝试这样做(也改进了您的文件循环):

代码语言:javascript
运行
复制
find * -type f -name "*.php" |
while IFS= read -r file; do
    awk '
        BEGIN { RS="" }
        FILENAME==ARGV[1] { old=$0 }
        FILENAME==ARGV[2] { new=$0 }
        FILENAME==ARGV[3] {
            if ( start = index($0,old) ) {
                $0 = substr($0,1,start-1) new substr($0,start+length(old))
            }
            print
        }
    ' "zsearch" "zreplace" "$file" > "$file"tmp7 &&
    mv "$file"tmp7 "$file"
    echo "$file"
done

对于名字中有新行的文件,它仍然会失败--如果这是可能的话,请告诉我们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45991232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档