sed、awk、perl混合实现同样的功能——编号

2020-02-26  本文已影响0人  hygine

为文件中的每一行进行编号(简单的左对齐方式)。这里使用了“制表符”(tab,见本文末尾关于’\t’的用法的描述)而不是空格来对齐边缘。

sed = filename | sed 'N;s/\n/\t/'
awk '{i++;printf("%d\t%s\n",i,$0)}'
perl -pe 'print "$.\t"'
perl -pe '$_ = "$.\t$_"'

对文件中的所有行编号(行号在左,文字右端对齐)。

sed = filename | sed 'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'
awk '{i++;printf("%6d %s\n",i,$0)}'
perl -pe 'printf "%6d ", $.'

对文件中的所有行编号,但只显示非空白行的行号。

sed '/./=' filename | sed '/./N; s/\n/ /'
awk '{i++;if(!/^$/)printf("%d %s\n",i,$0);else print}'
perl -pe 'print "$. " unless /^$/'

计算行数 (模拟 “wc -l”)

sed -n '$='
awk '{i++}END{print i}'
perl -nle 'END { print $.}'
上一篇 下一篇

猜你喜欢

热点阅读