【问题标题】:Find large strings in files and show the files在文件中查找大字符串并显示文件
【发布时间】:2020-03-26 13:04:14
【问题描述】:

我想在目录文件中查找大字符串并报告它们:

 awk 'length>50' /home/* -exec ls -l {} ';'

提前致谢

【问题讨论】:

    标签: bash shell awk grep


    【解决方案1】:

    如果您的文件名不包含空格,则使用 POSIX 工具:

    grep -El '.{50}' /home/* | xargs ls -l
    

    否则使用 GNU 工具:

    grep -ElZ '.{50}' /home/* | xargs -0 ls -l
    

    【讨论】:

      【解决方案2】:

      为此您需要find,例如:

      find . -type f -exec grep -Eq '.{50}' {} \; \
                     -exec ls -l {} +
      

      在 GNU 中找到 -exec ls -l {} + 可以只替换为 -ls

      如果不需要长输出(需要 GNU grep):

      grep -Erl '.{50}' .
      

      【讨论】:

      • 太棒了,它在一行中给出了所有结果strLen=$( grep -Erl '.{50}' /home/ ) echo $strLen >> $LOGFILE
      • 不,不是,您在拨打echo 时误用了引号。始终引用您的变量 - 请参阅 mywiki.wooledge.org/Quotes
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2015-07-14
      • 2016-05-30
      • 2014-05-02
      • 1970-01-01
      相关资源
      最近更新 更多