标签: wc

如何使用`wc -l`获得一行?

我添加了一个 git 别名,以提供我历史记录中特定文件的行数:

[alias]
lines = !lc() { git ls-files -z ${1} | xargs -0 wc -l; }; lc
Run Code Online (Sandbox Code Playgroud)

但是,wc -l正在报告多个总数,如果我有超过 10 万行,它会报告它们的总数,然后继续。下面是一个例子:

<100k 行(所需输出)

$ git lines \*.xslt
  46 packages/NUnit-2.5.10.11092/doc/files/Summary.xslt
 232 packages/NUnit-2.5.10.11092/samples/csharp/_UpgradeReport_Files/UpgradeReport.xslt
 278 total
Run Code Online (Sandbox Code Playgroud)

> 100k 行(必须通过管道传输grep "total"

$ git lines \*.cs | grep "total"
 123569 total
 107700 total
 134796 total
 111411 total
  44600 total
Run Code Online (Sandbox Code Playgroud)

如何从 中获得真正的总计wc -l,而不是一系列小计?

xargs files wc

13
推荐指数
2
解决办法
1万
查看次数

如何获取特定列中单词的字符数?

我有一个像这样的 CSV 文件:

abd,123,egypt,78
cde,456,england,45
Run Code Online (Sandbox Code Playgroud)

如何获得仅第 3 列单词的字符数?

我不知道如何wc做到这一点。

shell csv columns wc

13
推荐指数
4
解决办法
1万
查看次数

如何使用 wc 和管道查找某个目录中有多少个文件和目录?

如何使用字计数器 ( wc) 和管道来计算目录中有多少文件或/usr/bin目录?

scripting find wc file-types

11
推荐指数
2
解决办法
4万
查看次数

计算文件末尾的空行数

我有一个文件末尾有空行的文件。我可以使用grep在脚本中作为变量传递的文件名来计算文件末尾的空行数吗?

grep text-processing wc

11
推荐指数
6
解决办法
8202
查看次数

为什么 wc &lt;&lt;&lt;"$string" 显示的长度比 printf "$string" 长一个字节 | 厕所?

偶然地,我发现这wc取决于它如何从 bash 获取输入的不同:

$ s='hello'
$ wc -m <<<"$s"
6
$ wc -c <<<"$s"
6
$ printf '%s' "$s" | wc -m
5
$ printf '%s' "$s" | wc -c
5
Run Code Online (Sandbox Code Playgroud)

这是 - 恕我直言令人困惑 - 行为记录在某处吗?wc这里算什么- 这是一个假定的换行符吗?

bash newlines wc here-string

11
推荐指数
2
解决办法
3017
查看次数

如何跳过输出的第一行?

这是问题,我想计算我在 hpc 中的作业数量,但这不是现成的功能之一。所以我做了这个简单的脚本

squeue -u user_name | wc -l
Run Code Online (Sandbox Code Playgroud)

wheresqueue打印所有作业,如下所示

> squeue -u user_name
   JOBID PARTITION NAME     USER ST       TIME  NODES NODELIST(REASON)
 8840441    theory cteq      fxm PD       0:00      1 (Resources)
 8840442    theory cteq      fxm PD       0:00      1 (Priority)
 8840443    theory cteq      fxm PD       0:00      1 (Priority)
 8840444    theory cteq      fxm PD       0:00      1 (Priority)
Run Code Online (Sandbox Code Playgroud)

这将被输送到wc并计算行数。但是,第一行不是作业的条目。wc计数时如何指示跳过第一行?或者我应该只取wc减一的输出?

提前致谢!

wc

10
推荐指数
3
解决办法
1万
查看次数

如何有效地拆分大文本文件而不拆分多行记录?

我有一个很大的文本文件(gz 后约 50Gb)。该文件包含4*N行或N记录;即每条记录由 4 行组成。我想将此文件拆分为 4 个较小的文件,每个文件的大小约为输入文件的 25%。如何在记录边界拆分文件?

一种天真的方法是zcat file | wc -l获取行数,将该数字除以 4,然后使用split -l <number> file. 但是,这会遍历文件两次,并且行计数非常慢(36 分钟)。有没有更好的办法?

这很接近,但不是我要找的。接受的答案也会计算行数。

编辑:

该文件包含 fastq 格式的测序数据。两条记录看起来像这样(匿名):

@NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTTTATGTTTTTAATTAATTCTGTTTCCTCAGATTGATGATGAAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
AAAAA#FFFFFFFFFFFFAFFFFF#FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<AFFFFFFFFFFAFFFFFFFFFFFFFFFFFFF<FFFFFFFFFAFFFAFFAFFAFFFFFFFFAFFFFFFAAFFF<FAFAFFFFA
@NxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGCGA+ATAGAGAG
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCCCTCTGCTGGAACTGACACGCAGACATTCAGCGGCTCCGCCGCCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
AAAAA#FFFFF7FFFFFFAFFFFA#F7FFFFFFFFF7FFFFFAF<FFFFFFFFFFFFFFAFFF.F.FFFFF.FAFFF.FFFFFFFFFFFFFF.)F.FFA))FFF7)F7F<.FFFF.FFF7FF<.FFA<7FA.<.7FF.FFFAFF
Run Code Online (Sandbox Code Playgroud)

每条记录的第一行都以@.

编辑2:

zcat file > /dev/null 需要 31 分钟。

EDIT3: 只有第一行以@. 其他人都不会。见这里。记录需要保持有序。在生成的文件中添加任何内容都是不行的。

sed awk text-processing split wc

9
推荐指数
1
解决办法
4174
查看次数

在 diff 输出中获取正确的行数

我想在 diff 的输出中获得正确的行数(特别是使用-y--suppress-common-lines选项)。使用简单的wc -l工作,因为如果这两个文件没有结束换行符和他们的最后一行是不同的wc -l将不计入最后一行。

有没有简单有效的解决方案来避免这种情况?

例如,如果您有文件“a”:

a
b
c
d   #no newline here
Run Code Online (Sandbox Code Playgroud)

和“b”:

a
b
c
D    #no newline here
Run Code Online (Sandbox Code Playgroud)

输出是:

$ diff -y --suppress-common-lines a b | wc -l
0
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,因为diff 确实输出了一行。

diff wc

8
推荐指数
1
解决办法
7818
查看次数

获取字符串中的空格字符数?

如何检查\t文件第一行中有多少个空格 (' ', )?

scripting bash shell-script wc

8
推荐指数
1
解决办法
1万
查看次数

wc 命令计算额外的字符

cat > file
Amy looked at her watch. He was late. The sun was setting but Jake didn’t care.

wc file
1      16      82 file
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么wc命令在这种情况下返回 3 个额外的字符吗?

linux osx wc

7
推荐指数
2
解决办法
1989
查看次数

标签 统计

wc ×10

bash ×2

scripting ×2

text-processing ×2

awk ×1

columns ×1

csv ×1

diff ×1

file-types ×1

files ×1

find ×1

grep ×1

here-string ×1

linux ×1

newlines ×1

osx ×1

sed ×1

shell ×1

shell-script ×1

split ×1

xargs ×1