在Linux/unix中计算所有行中特定列的字符数

e1xvtsh3  于 2022-12-26  发布在  Linux
关注(0)|答案(1)|浏览(101)

当tsv文件中的特定列包含句子而不是单个字符串时,我如何计算该列的字符数?(我想计算该列中的每行)。
例如:(在csv的情况下)计数第二字段/列的字符数:
输入:

ab, an apple  
ac, not juice   
ad, I like

输出:

ab, an apple , 7  
ac, not juice, 8  
ad, I like, 5
vwkv1x7d

vwkv1x7d1#

这对你有用吗?

awk -F, '{printf "%s,%s,%s\n",$1,$2,length(gensub(/ /, "", "g", $2))}' sleiman.txt

我把文件命名为sleiman.txt。awk所做的是:

  • ,作为输入字段分隔符
  • 打印第一和第二字段不变
  • 去掉第二个字段中的空格,计算剩余字符数,在第二个字段之后打印

因此输出为:

awk -F, '{printf "%s,%s,%s\n",$1,$2,length(gensub(/ /, "", "g", $2))}' sleiman.txt
ab, an apple  ,7
ac, not juice   ,8
ad, I like  ,5

相关问题