包含多行中包含行号的列

时间:2015-02-11 11:07:15

标签: bash perl awk sed wc

我想在多行中包含额外的列数,并且要增加数量,例如:

db1              CIRBS                            500           10
db2              CITEMP                           500           7
db5              IN_DATA                          500           6
dbb              IN_INDEX                         500           3

最终观点:

1 db1              CIRBS                            500           10
2 db2              CITEMP                           500           7
3 db5              IN_DATA                          500           6
4 dbb              IN_INDEX                         500           3

3 个答案:

答案 0 :(得分:6)

使用awk:

awk '{ print NR, $0 }' filename

NR是当前记录的编号(即行),$0是整行,因此这将在每行之前打印一个递增的数字。

答案 1 :(得分:5)

用猫:

cat -n infile

使用nl:

nl -ba infile

使用grep:

grep -n . infile

使用GNU sed:

sed = infile | sed 'N; s/\n/ /'

使用GNU sed + xargs:

sed = infile | xargs -n2

使用awk:

awk '{ print NR, $0 }' infile

或者:

awk '$0 = NR OFS $0'   infile

使用perl:

perl -pne 's/^/$. /' infile

答案 2 :(得分:3)

在perl中,您将使用$. - 当前文件的当前行号。

use strict;
use warnings;
use English;

while ( <DATA> ) {
   # $. and $_ 
   print $INPUT_LINE_NUMBER . " " . $ARG;
}

__DATA__
db1              CIRBS                            500           10
db2              CITEMP                           500           7
db5              IN_DATA                          500           6
dbb              IN_INDEX                         500           3

对于更简单的回答cat -n也应该这样做。

  -n, --number
      number all output lines