gpt4 book ai didi

Perl 正则表达式从命令行对文件进行操作

转载 作者:行者123 更新时间:2023-12-04 09:05:48 25 4
gpt4 key购买 nike

在一个文件中,说 xyz.txt 我想替换任何数字的模式,后跟一个点示例:1.,2.,10.,11。等等。有一个空格。
如何在命令行上编写一个perl命令来对文件进行上述操作,应该使用什么正则表达式?

请帮忙
谢谢你。

最佳答案

这必须是 Perl oneliner 吗?

perl -i -pe  's/\d+\./ /g' <fileName>

Perl 命令行选项: -i用于指定输入文件会发生什么。如果你不给它一个文件扩展名,原始文件就会丢失并被 Perl 修改过的输出替换。例如,如果我有这个:
perl -i.bak -pe  's/\d+\./ /g' <fileName>

原始文件将存储为 .bak suffix 和 本身将包含您的输出。
-p意味着将您的 Perl 程序包含在一个看起来是 的打印循环中有点 像这样:
while ($_ = <>) {
<Your Perl one liner>
print "$_";
}

这是对正在发生的事情的稍微简化的解释。您可以通过执行 perldoc perlrun 来查看实际的 perl 循环。从命令行。主要思想是它允许您像 sed 一样对文件的每一行进行操作。或 awk .
-e只包含您的 Perl 命令。

您也可以进行文件重定向:
perl -pe  's/\d+\./ /g' < xyz.txt > xyz.txt.out

关于Perl 正则表达式从命令行对文件进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com