bash脚本:计算与过滤器匹配的文本文件中的最大字符数

时间:2015-01-30 06:56:10

标签: linux bash text

想要一个linux / unix脚本,它会告诉我目录树中任何行的最大字符。

所以我可以指定一个根文件夹。它向下走,并使用一些掩码处理文件(如*.java) - 一个查找命令...然后将最大字符保存在var中的一行中并打印出来。

我看到this question但我只想要最大值而不必复制到电子表格或其他处理。

不希望特定角色想要考虑所有角色。

2 个答案:

答案 0 :(得分:1)

这将返回当前目录中所有* java文件中包含最多字符数的行(将它们计为管道到wc -c):

perl -e 'while(<>){$l=length;  $l>$m && do {$c=$_; $m=$l}  } print $c' *.java

这不完全是你问的问题,但这是一个很好的起点。

答案 1 :(得分:1)

使用find命令:

find -type f -iname "*.java" -exec awk 'length($0)>a{a=length($0)} END{print FILENAME":"a}' {} \;

<强>解释

  • -type f只喜欢文件
  • -iname "*.java"仅以.java
  • 结尾的文件
  • -exec awk为每个文件执行awk
    • length($0)>a{a=length($0)}如果该行的长度大于aa设置为该长度。
    • END{print FILENAME":"a}:最后,打印文件名和长度
相关问题