【问题标题】:Find and replace @n with a something else查找 @n 并将其替换为其他内容
【发布时间】:2024-01-03 23:10:01
【问题描述】:

我正在尝试在一堆文档中将&00 替换为@n。做了一些挖掘,但说实话,我对 perl 不是很好。我尝试添加一些转义字符和其他一些东西。我怎样才能让下面的命令工作?它似乎不喜欢我替换@n(原因很明显)。

perl -pi -w -e 's/&00/@n/g;' *.wld

谢谢

【问题讨论】:

    标签: regex perl replace special-characters


    【解决方案1】:

    @n 指的是一个空数组。当插入一个空数组时,结果是空字符串。因此,您的命令似乎会删除所有出现的&00

    在这里转义 @ 应该会有所帮助:

    perl -i -wpe's/&00/\@n/g' *.wld
    

    (不带参数的标志可以堆叠)

    【讨论】:

    • 哇,干得好哈哈。另外,谢谢您或先生的快速响应!
    • “可以堆叠不带参数的标志”?
    • @TLP 如perl -p -w -> perl -pw
    • 啊哈...是的,但在这种情况下,“标志”被称为“开关”。
    • @user2612011: find /all /needed /directories -type f -name \*.wld | xargs perl <...> find(1) 递归搜索文件。 xargs(1) 运行从标准输入读取的任何命令 + 参数。