用perl写个脚本。在目录下所有文件内容中,查找字符串parameter后面以空格开始和结束的字符串ABC,并替换所有该字符串为DEF。
时间: 2023-11-28 21:48:55 浏览: 68
下面是一个简单的 Perl 脚本,可以实现你的需求:
```perl
#!/usr/bin/perl
use strict;
use warnings;
# 读取当前目录下所有文件
my @files = glob("*");
# 遍历每个文件
foreach my $file (@files) {
# 如果是文件而非目录
if (-f $file) {
# 读取文件内容
open my $fh, "<", $file or die "Unable to open $file: $!";
my $content = do { local $/; <$fh> };
close $fh;
# 替换字符串
$content =~ s/parameter\s+ABC\s+/parameter DEF /g;
# 将修改后的内容写回文件
open $fh, ">", $file or die "Unable to write to $file: $!";
print $fh $content;
close $fh;
}
}
```
该脚本首先使用 `glob()` 函数获取当前目录下所有文件名,然后遍历每个文件。对于每个文件,它会打开文件、读取内容、替换字符串、写回文件,最后关闭文件。
替换字符串的正则表达式是 `/parameter\s+ABC\s+/`,其中 `\s+` 匹配一个或多个空格。`/g` 表示全局替换,即替换所有匹配项而非只替换第一个匹配项。
阅读全文