Linux 在Unix中,如何计算不以空格开头的代码行数?

Linux 在Unix中,如何计算不以空格开头的代码行数?,linux,shell,unix,Linux,Shell,Unix,在上述情况下,不以空格开头的行数应为2。如何在Unix中使用wc-l或更好的方法实现这一点?我建议使用grep和-c开关来输出计数: test1: 1. samplinggggggg 2. samplinggggggg 3. samplinggggggg test2: 1. samplinggggggg 2. samplinggggggg 3. samplinggggggg 4. samplinggggggg 模式匹配行首的非空格字符 要包含其他类型的空白字符(例

在上述情况下,不以空格开头的行数应为2。如何在Unix中使用
wc-l
或更好的方法实现这一点?

我建议使用grep和
-c
开关来输出计数:

test1:
  1. samplinggggggg
  2. samplinggggggg
  3. samplinggggggg

test2:
  1. samplinggggggg
  2. samplinggggggg
  3. samplinggggggg
  4. samplinggggggg
模式匹配行首的非空格字符

要包含其他类型的空白字符(例如制表符),请使用
[^[:space:]

grep -c '^[^ ]' file
…或者,如果您的grep版本支持它(例如GNU grep),请改用
\S
作为
[^[:space:]
:

grep -c '^[^[:space:]]' file

我建议使用带有
-c
开关的grep来输出计数:

test1:
  1. samplinggggggg
  2. samplinggggggg
  3. samplinggggggg

test2:
  1. samplinggggggg
  2. samplinggggggg
  3. samplinggggggg
  4. samplinggggggg
模式匹配行首的非空格字符

要包含其他类型的空白字符(例如制表符),请使用
[^[:space:]

grep -c '^[^ ]' file
…或者,如果您的grep版本支持它(例如GNU grep),请改用
\S
作为
[^[:space:]
:

grep -c '^[^[:space:]]' file

grep'^\S'.| wc-l
?过滤掉间隔的行,计算剩下的行数。
grep'^\s'.|wc-l
?过滤掉间隔的行,数一数剩下的行数。你能解释一下为什么它可以跳过空白行吗?原因是每种模式在行首匹配一个非空格字符。如果行是空的,那么就没有字符,因此模式无法匹配。您能解释一下为什么它可以跳过空行吗?原因是每个模式在行首匹配一个非空格字符。如果该行为空,则没有字符,因此模式无法匹配。