您的位置:首页 > 其它

unix 常用命令 perl 实现 sed awk tr nl

2010-07-23 17:31 309 查看

sed

task
sed
perl
Replace 12
with twelve
sed 's/12/twelve/g'

perl -pe 's/12/twelve/g'

Replace the word sh
with Bourne Shell
sed -e 's/ sh / Bourne Shell /g'

[1]

perl -pe 's//bsh/b/Bourne Shell/g'

[2]

Remove lines 2 to 4 from stream
sed '2,4d'

perl -nle 'print if $.<2 || $.>4'

edit

awk

task awk perl
Print second field (whitespace-separated)
awk '{print $2}'

perl -lane 'print $F[1]'

Count lines starting with X
awk '/^X/ {++x} END {print x}'

perl -nle '++$x if /^X/; print $x if eof'

Add numbers in second column and print sum
awk '{sum+=$2} END {print sum}'

perl -lane '$sum+=$F[1]; print $sum if eof'

edit

tr

task tr perl
ROT13
tr 'A-Za-z' 'N-ZA-Mn-za-m'

perl -pe 'y/A-Za-z/N-ZA-Mn-za-m/'

Remove carriage return from DOS files [3]

tr -d '/r'

perl -pe 'tr//r//d'

edit

grep

task grep perl
Print only lines containing 12
grep '12'

perl -nle 'print if /12/'

Print only lines not containing 12
grep -v '12'

perl -nle 'print if !/12/'

edit

nl

task nl perl
Insert line numbers (lined up)
nl -ba

perl -nle 'printf "%6s  %s/n", $.,  $_'

edit

Footnotes


Won't match words at start/end of line


Will match any perl word-boundary
which consists of A-Za-z_ followed by a non A-Za-z_


This method will remove all carriage return characters, not only those at end of line
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: