AWK脚本打印一行中字符的数量

3
我想在打印每行后输出txt文件中每行的字符数。我使用的awk脚本是: awk 'length($0)>19{print length($0)}' marks.txt 但它没有打印每行的字符数。输出中在打印文件内容后有一个0,但这不是我需要的。请问我做错了什么?谢谢!
marks.txt文件的内容为:
1) Amit         Physics  80
2) Rahul        Maths    90
3) Shyam        Biology  87
4) Kedar        English  85
5) Hari         History  89

输出结果为:
1) Amit         Physics  80
2) Rahul        Maths    90
3) Shyam        Biology  87
4) Kedar        English  85
5) Hari         History  89
0

1
你希望length($0)>19会做什么? - Ed Morton
我希望length($0)>19能够选择包含超过19个字符的行。 - ohnycany
这个问题可以解决,但是你的问题中并没有提到你需要这样做的原因,所以你是不是还有其他要求?除了打印每行有多少个字符之外,你还有其他需求吗? - Ed Morton
下面的答案可以解决问题。我已经找到了只获取长度大于19个字符的行的方法。我还发现脚本中的'END'引起了问题。在移除"END"之后,脚本运行得很好。 - ohnycany
1个回答

2
使用 awk
awk '{print $0, length}' input.txt

输出

1) Amit         Physics  80 27
2) Rahul        Maths    90 27
3) Shyam        Biology  87 27
4) Kedar        English  85 27
5) Hari         History  89 27

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接