如何在不查看文本文件的情况下找出文本文件包含多少行?

Iva*_*van 52 text-processing files text

如何在不在编辑器或查看器应用程序中打开文件的情况下找到文本文件包含的行数?是否有方便的 Unix 控制台命令来查看数字?

Kev*_*vin 82

确实有。它被称为wc,最初用于字数统计,我相信,但它可以执行行、单词、字符、字节(在某些实现中,最长行的长度(以字节为单位)或最宽行的显示宽度)。该-l选项告诉它计算行数(实际上,它计算换行符,因此只计算正确分隔的行):

wc -l mytextfile
Run Code Online (Sandbox Code Playgroud)

或者只输出行数:

wc -l < mytextfile
Run Code Online (Sandbox Code Playgroud)

(请注意,某些实现会在该数字之前插入空格)。

  • 是的 `wc` 非常有用,但值得注意的是 *longest line length* 选项 `-L` 很古怪...参见 [wc -L 报告 tab-char 的行长为 8](http ://unix.stackexchange.com/questions/20551/wc-l-reports-a-line-length-of-8-for-a-tab-char-bug-or-feature) (5认同)

小智 11

另一种选择是用于grep查找模式匹配的次数:

grep --regexp="$" --count /path/to/myfile.txt
Run Code Online (Sandbox Code Playgroud)

在这个例子中,

  • $ 是一个计算结果为新行的表达式(按下输入按钮)
  • --count 抑制匹配的正常输出,并显示匹配的次数。
  • /path/to/myfile.txt很明显,我希望:)

编辑:正如@hesse 在评论中提到的,这可以缩短为

grep -c $ path/to/file
Run Code Online (Sandbox Code Playgroud)

这也将使其成为非 GNUgrep实现的标准和可移植性。

  • 确实是另一种选择......一个非常过度设计的选择,授予,但一个选择。 (7认同)
  • 这也可以写得更短:`grep -c $ some_file` (4认同)