【问题标题】:extract the total count line (wc -l) number in shell提取shell中的总计数行(wc -l)数
【发布时间】:2019-01-08 01:09:14
【问题描述】:

当我对目录下的多个文件使用“wc -l”时,我试图弄清楚如何提取最后一个总数。例如:

currentDir$ wc -l *.fastq
    216272 a.fastq
    402748 b.fastq
   4789028 c.fastq
  13507076 d.fastq
   5818620 e.fastq
  24733744 total

我只需要从上面提取 24733744。我试过了

wc -l *.fastq | tail -l

得到

  24733744 total

但不确定下一步该做什么。如果我使用“cut”,烦人的是数字前有多个空格,我将需要将此代码用于其他文件夹,并且空格的数量可能会有所不同。

感谢任何建议。非常感谢!

【问题讨论】:

  • 使用tr 将多个空格压缩成一个空格(unix.stackexchange.com/a/145981/8927),然后使用cut 离开。
  • 您也可以使用awk '{print $1}' 仅打印第一列文本数据。
  • 其实应该是wc -l *.fastq | awk 'END {print $1}'

标签: shell wc


【解决方案1】:

对于这个特殊的问题,它可能更容易做到:

cat *.fastq | wc -l

【讨论】:

  • @JacobKrall,在 Linux 下可以,GNU Awk 4.1.3,您使用的是哪个变体?
【解决方案2】:

这应该适用于任意数量的空格:

wc -l *.fastq | tail -l |  tr -s ' ' | cut -f 2 -d ' '

例子:

    echo "  24733744 total" | tr -s ' ' | cut -f 2 -d ' '
24733744

【讨论】:

  • 很高兴它有帮助!祝你有美好的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 2014-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多