regex - 如何解决此匹配并替换perl文件中仅第n次出现的单词的问题

标签 regex perl

假设我有一个包含这几行的文件

Hello abc
hii
how are you
Hello abc

如果我想用 xyz 替换第二次出现的 abc,我该怎么做?

我想要这样的输出

Hello abc
hii
how are you
Hello xyz

我试着做 perl -pi -e 's/abc/xyz/if $. == 2' 文件名。它不适合我。谁能帮我解决这个问题?

最佳答案

perl -i -pe's/abc/ ++$count == 2 ? "xyz" : "abc" /eg' file

即使 abc 每行出现不止一次,这仍然有效。

关于regex - 如何解决此匹配并替换perl文件中仅第n次出现的单词的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54745944/

相关文章:

ruby 正则表达式字符串$

java - 匹配除两个特定单词之外的任何单词

perl - 关于编译时错误的问题

perl - 有没有办法为 Class::DBI 缓存机制?

perl - 使用 perl(或 wget)仅下载新的/修改过的文件

python - python中许多正则表达式的速度

php - preg 匹配重复或增量字符

python - 使用 re.findall() 替换所有匹配项

Perl WWW::Mechanize 和经过身份验证的代理

mysql - Perl DBD fetchrow_array 错误 :