perl 行式 命令

参考 : http:/my.huhoo.net/archives/2007/08/perl_1.html

http://bbs.chinaunix.net/viewthread.php?tid=499434

 

 

perl 命令使用 :

整洁性

-w打开警告
-Mstrict打开严格编译指示(pragma)

数据

-0(这是个零)指定输入记录分隔符
-a将数据分割成名为 @F 的数组
-F指定分割时 -a 使用的模式(请参阅 perldoc -f split)
-i在适当的位置编辑文件(请参阅 perldoc perlrun 以获取大量详细信息)
-n使用 <> 将所有 @ARGV 参数当作文件来逐个运行
-p和 -n 一样,但是还会打印 $_ 的内容

执行控制

-e指定字符串以作为脚本(多个字符串迭加)执行
-M导入模块
-I指定目录以搜索标准位置前的模块

 

 

--- 实例 ---

.环境设置:如果有系统字符编码 冲突,在当前
vim 
~/. bash_profile 下加入
LANG
= zh_CN
LC_ALL
= zh_CN . UTF8
export LANG LC_ALL


.大小写转换

echo  " ABC1C2cGJ "   | perl  - ne  ' tr/[A-Z]/[a-z]/; print ; '    # print

# "L 中间全部小写 "E   ; "U 中间全部大 写 "E   
echo  " ABC1C2cGJ "   | perl  - ne  ' s/(.*?1)(.*?)(2.*?)/$1/L$2/E$3/g; print ; '   

# print ABC1c2cGJ

 


. 输出  5 到 10 行 :

cat test.txt |perl  -ne ' print if $.<10 and $.>5 ;'

 

. 取得当前 shell 环境的变量

$> arg="test"

$> perl   -e'print @ARGV ;'  $arg

$> perl -e 'print  '$arg'; '  #或者

这里特别注意  如果:

$> arg=`date` ;   

$> perl -e 'print  '$arg'; '

是会报错 ; 需要   perl -e ' print  '"$arg"'   ; '  

结果 2010年 03月 20日 星期六 13:45:31 CST 

#在有空格的地方 需要 特别再加  ""

 

 

. 打开命令行里的文件,一行行的读取.每一行缺省保存在 $_

>$ perl -n -e 'print "$. - $_"' file

输出当前行数 $. 和当前行 $_.

>$ perl -p -ne '$_ = "$. - $_"' file

 

 

 

 

.文本编码转换

# linux 下默认 utf-8 如  encode("UTF-8", decode("GBK",$_));
perl  - MEncode  - ne  ' print decode("GBK",$_); '   file . txt

 

 

 

 

. 选择输出

>$ perl -n -e 'next LINE unless /pattern/; print $_'

 

 

 

.我个人常常使用 -l 参数, 用来给每一个输出加 /n. 例如

>$ perl -le 'print "Hello World"'

 

 

. # 像 awk 一样 Begin{}End{}  和  -F  切割

>$ perl -F '/W' -a ne 'END {print $x} $x += @F' file.txt

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值