Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl的-p命令行开关做什么?_Perl - Fatal编程技术网

Perl的-p命令行开关做什么?

Perl的-p命令行开关做什么?,perl,Perl,-p,-i.bak s/和/g是什么意思?1.使perl在脚本周围假设以下循环,这使它在文件名参数上迭代,有点像sed: perl -p -i.bak -e 's/search_str/replace_str/g' filename 请注意,这些行是自动打印的。要禁止打印,请使用-n开关。A-p覆盖A-n开关。 看 这一行将更改搜索的每一次出现,以替换文件每一行中的搜索,并自动打印结果行 -i.bak开关使其将文件更改到位,并将备份存储到另一个扩展名为.bak的文件。来自: -p 使Perl在

-p,-i.bak s/和/g是什么意思?

1.使perl在脚本周围假设以下循环,这使它在文件名参数上迭代,有点像sed:

perl -p -i.bak -e 's/search_str/replace_str/g' filename
请注意,这些行是自动打印的。要禁止打印,请使用-n开关。A-p覆盖A-n开关。 看

这一行将更改搜索的每一次出现,以替换文件每一行中的搜索,并自动打印结果行

-i.bak开关使其将文件更改到位,并将备份存储到另一个扩展名为.bak的文件。

来自:

-p 使Perl在程序中假设以下循环,这使其在文件名参数上迭代,有点像sed:

perl -p -i.bak -e 's/search_str/replace_str/g' filename
-p:假设“while{…}” 循环程序并打印每个文件 我也在处理生产线。 -i、 bak:更改输入文件 文件名并创建 文件filename.bak作为备份。 s/:表示替换 g-进行替换 在全球范围内,这就是不要在 第一次更换。
它将自动从diamond操作符中读取一行,执行脚本,然后打印$\ux

有关更多详细信息,请访问以下链接

这段代码:

perl 文件名

基本上与以下内容相同:

  LINE:
    while (<>) {
        ...             # your program goes here
    } continue {
        print or die "-p destination: $!\n";
    }

您对-p的定义缺少print语句。你把它和-n混淆了吗?啊哈,这是错误的,原因不同:它不打印输入行,而是打印处理过的行P