perl学习笔记04_命令行运行perl语句
命令行运行perl语句
1. -n -e选项
cat file.txt | perl -ne '$a += s/pattern//g; END {print "$a\n"}'
作用:计算文件file.txt中匹配“pattern”的个数。
说明:
1. cat显示文件内容,通过管道将内容送给perl程序处理; 如果使用perl -e '' file.txt的方式,file.txt将会被修改。使用管道,可以保证原文件不变。
2. perl命令行选项:-e,执行后面单引号中的程序,多行语句用分号分隔;
3. perl命令行选项: -n,循环处理得到每行的内容(不打印当前行内容, -p会打印当前行内容);
4. $a += s/pattern//g,得到每行内容匹配“pattern”的数目,累加到$a中;
5. END {print "$a\n"},执行完内容最后一行,打印变量$a;
注意: 在window环境中运行时, perl语句两侧的单引号会引发错误.
2. -i -p -e选项
perl -i.bak -pe "s/abc/123/; s/def/456/;" file.txt
作用: file.txt备份为file.txt.bak, file.txt中abc改为123, def改为456.
说明:
1. -i.bak: 原文件备份为".bak"后缀的文件.
2. -e: 执行后续引号中的perl程序.
3. -p: 为每一行循环执行perl程序(不只执行一次), 同时把每行内容打印出来(-n选项不打印).