【问题标题】:How to find and replace on a specific amount of times?如何在特定次数上查找和替换?
【发布时间】:2013-05-24 03:53:34
【问题描述】:

我需要在文本文件中找到前 413 次:

<title>Local SEO Services - The Company Review</title>

并将其替换为:

<title>Local SEO Services - TheCompany Review</title>

有没有办法通过命令行执行此操作并将其限制为前 413 个结果?

提前感谢您的帮助!

【问题讨论】:

    标签: shell command-line command


    【解决方案1】:

    这是在 Perl 中实现的一个真正的基本思想:

    perl -e 'foreach (<>) { $count<2 && s/hello/goodbye/ && $count++; print; }'
    

    这会将前两次出现的“hello”替换为“goodbye”。但是,它是基于行的。如果您在一行中有两个替换,它将不起作用。

    注意它在标准流上运行,ie 从标准输入读取并写入标准输出。

    您需要转义任何特殊字符(如/),如下所示:\/例如

    s/<title>Local SEO Services - The Company Review<\/title>/<title>Local SEO Services - TheCompany Review<\/title>/
    

    【讨论】:

    • 感谢您的帮助!我在哪里输入文件名才能知道要在哪个文件上运行?
    • 就像我说的,你读写标准流。所以你可以使用文件重定向:perl -e 'etc etc' &lt; input.txt &gt; output.txt
    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 2012-05-13
    • 2019-08-07
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    相关资源
    最近更新 更多