【问题标题】:AWK script to print the number of characters in a lineAWK脚本打印一行中的字符数
【发布时间】:2019-12-09 19:23:58
【问题描述】:

我想在打印行后输出txt文件中每一行的字符数。我正在使用的 awk 脚本是:

awk 'length($0)>19 END {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

【问题讨论】:

  • 你希望length($0)>19 能做什么?
  • 我希望 length($0)>19 会选择包含超过 19 个字符的行。
  • 它会,但你没有在你的问题中提到任何需要它的东西 - 你想要做的不仅仅是打印每行有多少个字符吗?
  • 下面的答案可以解决问题。我已经想出了如何只获取 >19 个字符的行。我还发现脚本中的“END”导致了问题。删除“END”后脚本运行良好。

标签: shell unix awk


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2011-01-02
    • 2012-01-19
    • 1970-01-01
    相关资源
    最近更新 更多