linux - 打印行数

标签 linux bash

我有一个只包含 .txt 文件的目录。我想打印每个文件的行数。当我写 cat file.txt | wc -l 出现了行数,但是当我想制作脚本时它会更复杂。我有这段代码:

for fis in `ls -R  $1`
do
        echo `cat $fis | wc -l`       

done

我试过: wc -l $fis ,使用 awk,grep 但它不起作用。它告诉我们:

cat: fis1: No such file or directory 0

如何打印行数?

最佳答案

要在子目录中递归查找文件,请使用find 命令,而不是ls -R,后者主要用于人类阅读。

find "$1" -type f -exec wc -l {} +

循环 ls -R 输出的问题是:

  1. 无法正确解析带有空格的文件名。
  2. 它打印除了文件名之外的其他输出。

关于linux - 打印行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43687131/

相关文章:

regex - bash 脚本正则表达式匹配

linux - 如何使用 bash 根据模式列出 Linux 中的文件

linux - 使用 Linux 控制 USB 电源(开/关)

php - 使用 PHP 运行 SSH 命令

c# - 多操作系统用户身份验证技术的方法和建议

linux - git 总是强制更改文件

c - 这是linux内核代码中的任何一种宏吗?

linux - 传递给分离屏幕的多字 Bash 脚本参数

bash - 通过 shell 脚本中的 s_client 关闭连接

Bash:如何在命令上调用或修改变量的内容?