使用或不使用Diamond op时,Perl都可以就地搜索和替换文件

安东尼奥

我正在尝试在脚本中复制经典的一线:

perl -i -p -e 's/search_string/replace_string/g' /path/to/file/foo

它将所有出现的“ search_string”替换foo为“ replace_string”。

我尝试了:

@ARGV=("/path/to/file/foo");
$^I  = ".bak";
while (<>) {
   s/search_string/replace_string/g; 
   print; 
}

这行得通,但是,如果我需要再次访问命令行参数,则会丢失@ARGV值。因此,我需要备份它们:

my @temp=@ARGV;
@ARGV=("/path/to/file/foo");
$^I  = ".bak";
while (<>) {
   s/search_string/replace_string/g; 
   print; 
}
@ARGV=@temp;

这也是可行的,但是,由于我对Perl刚起步,我发现它太复杂了,有点反对使“容易的事情变得容易而困难的事情”。
你能建议一个更好的方法吗?

池上

要临时备份软件包变量,请使用local

{
   local @ARGV = ( "/path/to/file/foo" );
   local $^I  = ".bak";
   while (<>) {
      ...
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

角度2组件都可以同时使用.css和.scss文件吗?

来自分类Dev

如何设置音频文件的 mimetype,使其在 android 和 ios 上都可以使用?

来自分类Dev

使bat文件到处都可以使用吗?

来自分类Dev

字符替换(不使用替换)

来自分类Dev

使用 IMACROS 搜索和替换文本

来自分类Dev

使用CSS和SVG的Diamond菜单项

来自分类Dev

数组搜索不使用索引

来自分类Dev

数组搜索不使用索引

来自分类Dev

VIm更改括号类型(不使用搜索和替换)

来自分类Dev

搜索模式并使用Perl替换文本文件中的整行

来自分类Dev

声纳不使用lcov文件

来自分类Dev

复制文件(不使用FileUtils)

来自分类Dev

使用 txt 文件支持搜索和替换文件和文件夹名称

来自分类Dev

将HTML文件保存为php并使用任何php代码时,它们都可以工作

来自分类Dev

使用Powershell而不使用Regex替换文件中的多行文本

来自分类Dev

使用变量时不使用索引

来自分类Dev

不使用会话就地编辑流星视图

来自分类Dev

C - 读取然后写入文件而不使用内存(就地)?

来自分类Dev

如何使用cmd或PowerShell搜索和替换文件中的字符串?

来自分类Dev

如何使用bash搜索和替换文件中的多个数字序列

来自分类Dev

使用或不使用命名空间:: sweep和/或Modern :: Perl

来自分类Dev

为什么从不使用交换文件?

来自分类Dev

MacBook无法使用互联网,但nslookup和ping都可以使用

来自分类Dev

搜索模式中的$时,在替换文本中使用sed'

来自分类Dev

OSX 10.8.2不使用搜索域

来自分类Dev

MongoDB全文搜索不使用索引

来自分类Dev

yadcf不使用render Colums搜索值

来自分类Dev

以编程方式搜索Google而不使用Ajax

来自分类Dev

Python不使用regexp替换oneliner

Related 相关文章

热门标签

归档