Perl tips series 0
删除文件中重复的行
使用一行命令就能实现,连编辑器都不用打开。
perl -ne 'print unless $a{$_}++' file.txt
上一行命令中,-n表示对于每一行执行命令,-e后跟具体的命令。 $_存的是每一行的内容,hash变量%a里存的是每一个行出现的次数,因为是先判断后++,类似于c语言中的i++。所以,只会打印第一次出现的行内容。 unless可以看作是if的反过来。
正则表达式debugger
无意中发现一个特别棒的perl module,用来debug正则表达式,那就是Regexp::Debugger。
perl -E "use Regexp::Debugger; 'abbc' =~ /(a|b)b+c/x"
shell里运行上面的命令,可以看到下面的画面,真是赞啊!
<img src="/../images/reg.png" class="img-thumbnail" width="60%" >