【问题标题】:How do I get the number of lines for specific files in a large directory?如何获取大目录中特定文件的行数?
【发布时间】:2014-12-29 09:36:21
【问题描述】:

我有命令“find . -name '*.dmp' | xargs wc -l”从目录中的所有 dmp 文件中获取行。转储文件命名约定是“dump-10181.dmp”,编号是唯一的增量编号。

如何仅获取编号为 50 - 678 的文件的行数?

【问题讨论】:

  • 这个:wc -l dump-{50..678}.dmp
  • 如果您对 50..300 和 400..678 感兴趣,可以试试这个:wc -l dump-{{50..300},{400..768}}.dmp

标签: linux bash console-application


【解决方案1】:

尝试以下方法:

seq 50 678 | xargs -I'{}' cat dump{} | wc -l

【讨论】:

    【解决方案2】:

    比其他解决方案更长,但更通用:

    for f in *.dmp ; do \
        n=${f##*-}; n=${n%.dmp}; \
        [[ "$n" = "" || "$n" = *[^0-9]* ]] && continue ;\
        n=$((10#$n)) ; ((n >= 50 && n <= 678)) && cat "./$f" ;\
    done | wc -l
    

    【讨论】:

    • 请给我一些问题的例子!我添加了所有这些反斜杠和分号以获得可读性。
    • 已修复;您还发现其他问题吗?
    • Ça m'al'air bon ;).
    猜你喜欢
    • 2013-05-31
    • 2018-07-23
    • 2012-10-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2015-01-21
    • 2010-11-10
    相关资源
    最近更新 更多