【问题标题】:UNIX: How to count the number of characters in a line, and find for any line that has the same number of characters?UNIX:如何计算一行中的字符数,并查找具有相同字符数的任何行?
【发布时间】:2014-03-26 11:56:06
【问题描述】:

如何计算一行中的总字符数,返回该数字,然后查找具有相似字符数的任何其他行?

例如,输入:

this is a line
this is the second line
this is the third line

将返回输出

14    1
23    1
22    1

其中第一个数字是第一行中的字符数,第二个数字是该字符数出现的行数。

【问题讨论】:

  • 这是可能的,例如awk。到目前为止,您尝试过什么?
  • 您也可以不使用awk 来执行此操作 - 只需使用while 循环逐行读取文件,使用wc -w 计算每行的字数,然后使用@987654327 @ 和 uniq -c 查找每个数字的出现次数。

标签: unix count character line


【解决方案1】:

由于没有尝试自己尝试解决它,我会给你一些提示以尝试使用awk

提示 1:

  • awk 有一个名为 gsub 的全局替换函数,它返回所做的替换次数。它的构造是gsub(regexp, replacement, target)
  • 如果您在正则表达式中使用/./,并将$0 作为目标,它将替换该行的所有字符并返回进行的替换次数。
  • 捕获该返回值并将其用作数组的键并递增数组以保持计数。
  • END 块中,使用for (key in array) 构造,打印keyarray[key]

提示 2:

  • 您可以使用length() 函数返回行的长度并将其用作数组的键。
  • 一旦awk 读取了您的整个文件,请按照上一个提示的最后一步操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    相关资源
    最近更新 更多