【发布时间】:2015-01-06 14:11:13
【问题描述】:
我想计算文件中所有行的字节数大于一个值(比如 10)。我该怎么做?
我尝试使用 cat file | awk'length($0)>10' 但这给了我所有字符数大于 10 的行。我想计算行中的字节数。
我写了下面的代码,但它不工作。它返回一些乱码输出:
#!/bin/ksh
file="a.txt"
while read line
do
a=`wc -c "${line}"|awk {'print $1'}`
if [ $a -ne 493]; then
echo "${line}"
fi
done <"$file"
【问题讨论】:
-
您可能需要
wc -c获取字节。 -
这会给我整个文件的计数。我想要字节数大于给定值的行
-
可以逐行阅读,然后
echo "$line" | wc -w等 -
您如何区分什么是“字节”和什么是“字符”?除非您使用像 UTF-8 这样的多字节编码,否则它们可能是相同的......
-
@fedorqui 我知道有时会有所不同。我想我的措辞很糟糕——我试图理解的是这里使用了哪种特定的字节映射(又名编码)。对于某些(不太常见的)编码,找到合适的工具可能并不那么简单,而使用更常见的 UTF-* 和/或 ISO 8859-* 以及其他一些编码可能是可行的......