相关疑难解决方法(0)

如何使用Windows命令行环境查找和替换文件中的文本?

我正在使用Windows命令行环境编写批处理文件脚本,并希望将文件中某些文本(例如"FOO")的每次出现更改为另一个(例如"BAR").最简单的方法是什么?任何内置功能?

windows scripting command-line batch-file text-files

468
推荐指数
20
解决办法
84万
查看次数

如何替换Perl中现有文件中的字符串?

我想在名为1_classification.dat,2_classification.dat等所有文本文件中将"blue"替换为"red".我想编辑同一个文件,所以我尝试了这个代码,但它不起作用.我哪里错了?

@files=glob("*_classification.dat");
foreach my $file (@files)
{
    open(IN,$file) or die $!;
    <IN>;
    while(<IN>)
    {
       $_='~s/blue/red/g';
       print IN $file;
    }

   close(IN)
}
Run Code Online (Sandbox Code Playgroud)

regex perl

50
推荐指数
3
解决办法
9万
查看次数

在Perl中搜索和替换文件?

从这个例子以下这里的另一个问题SO.

我将以下代码添加到我的基本perl脚本中.

#!/usr/bin/perl

$^I = '.bak'; # create a backup copy 

while (<>) 
{
   s/NewProdId/$ARGV[1]/g; # do the replacement
   s/PortId/$ARGV[2]/g; # do the replacement
   s/AssemblyId/$ARGV[3]/g; # do the replacement
   print; # print to the modified file
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用多个参数调用perl脚本时,它会中断.它似乎误将我的另一个参数误认为是要打开的文件名.

无法打开1-THU-71:在./process.pl第11行,<>第37行没有这样的文件或目录.

无法打开1-5XJ0DF:在./process.pl第11行,<>第37行没有这样的文件或目录.

无法打开1-3F0MB9:在./process.pl第11行,<>第37行没有这样的文件或目录.

我的bash脚本调用是这样的:

./process.pl "test.txt" $values
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

bash perl

2
推荐指数
1
解决办法
199
查看次数

标签 统计

perl ×2

bash ×1

batch-file ×1

command-line ×1

regex ×1

scripting ×1

text-files ×1

windows ×1