特定列

时间:2016-01-24 15:34:20

标签: perl string-length

是否有单行方法来获取制表符分隔的.txt文件的特定列中保留的字符串的字符长度,然后将这些计数附加到最后一列(列数可能是变量)?

示例数据:

1   AA
2   BBB
3   CCCCC
4   EE
5   DDD
6   AAA
7   FFFFF
8   AA
9   BBB
10  NNN

为了获得计数,我试图使用:

perl -lane 'print length $F[2]' in > out

perl -F, -Mopen=:locale -lane 'print length $F[2]' in > out

然而,结果是空的。

我也尝试过:

perl -lane '$_.=$F[2]; print length $_'

但是,正如我现在所知,这会打印整行的字符数而不是特定的列。

我不知道如何追加最后一栏。

所需输出(计算第2列时):

1   AA      2   
2   BBB     3
3   CCCCC   5
4   EE      2
5   DDD     3
6   AAA     3
7   FFFFF   5
8   AA      2
9   BBB     3
10  NNN     3

1 个答案:

答案 0 :(得分:3)

看来你很亲密。 Perl数组索引从零开始,那么如何使用@Override public void paintComponent(Graphics g) { super.paintComponent(g); if (drawRectangle) { rectangle(g); } else { circle(g); } } 的长度?您还需要某种分隔符

$F[1]

输出

perl -lape '$_ .= "\t". length($F[1])' input

如果您希望输出完全,那么您需要使用1 AA 2 2 BBB 3 3 CCCCC 5 4 EE 2 5 DDD 3 6 AAA 3 7 FFFFF 5 8 AA 2 9 BBB 3 10 NNN 3 这样的

printf

输出

perl -lane 'printf qq{%-4d%-8s%d\n}, @F, length($F[1])' input