scl*_*aes 6 shell text-processing wc
是否可以使用 wc 来计算每行的字符数而不是字符总数?
例如
echo -e foo\\nbar\\nbazz | grep -i ba
Run Code Online (Sandbox Code Playgroud)
返回:
bar
bazz
Run Code Online (Sandbox Code Playgroud)
那么为什么不 echo -e foo\\nbar\\nbazz | grep ba | wc -m
返回这些单词的长度列表呢?(3 和 4)
建议?
PS:为什么换行用wc -m
? wc -l
计算换行符,那么为什么还要wc -m
计算它们呢?
JJo*_*oao 17
wc
计入整个文件;您可以使用awk
逐行处理(不包括行分隔符):
echo -e "foo\nbar\nbazz\n" | grep ba | awk '{print length}'
Run Code Online (Sandbox Code Playgroud)
或awk
主要是以下内容的超集grep
:
echo -e "foo\nbar\nbazz\n" | awk '/ba/ {print length}'
Run Code Online (Sandbox Code Playgroud)
(请注意,某些awk
实现会报告字节数(例如wc -c
)而不是字符数(例如wc -m
),而其他实现会计算除字符之外不构成有效字符一部分的字节数(而wc -m
在大多数实现中会忽略它们) ))