什么GNU/Linux的命令行的工具,我会用于进行搜索和替换上一个文件?
题
什么GNU/Linux的命令行的工具,我会用于进行搜索和替换上一个文件?
可以搜索文本,并更换,被指定在一个regex格式?
其他提示
Perl是为此而发明的:
perl -pi -e 's/foo/bar/g;' *.txt
这些单引号中的任何正常s ///模式。您可以使用以下内容保留备份:
perl -pi.bak -e 's/foo/bar/g;' *.txt
或管道:
cat file.txt | perl -ne 's/foo/bar/g;' | less
但那真的更像是sed的工作。
考虑红宝石作为一种替代Perl。它偷了最Perl的一衬命令行args(-i
, -p
, -l
, -e
, -n
)和自动设置 $_
你喜欢Perl并且具有充足的regex善。此外,红宝石的语法可以更加舒适,更易于阅读或写比Perl或sed。(与否,取决于您的口味。)
ruby -pi.bak -e '$_.gsub!(/foo|bar/){|x| x.upcase}' *.txt
与
perl -pi.bak -e 's/(foo|bar)/\U\1/g' *.txt
在许多情况下,当处理的一派,性能不足的问题至关心你是否使用轻型sed或重量级Perl或heaveier量的红宝石。使用无论是最简单的编写。
sed ,流编辑器,是的,它使用正则表达式。
不隶属于 StackOverflow