我想计算文件中的所有行,行中的字节数大于一个值(比如 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"
最佳答案
你的做法很好,只是你要做a=$(wc -c <<< "$line")
或 a=$(echo "$line" | wc -w)
, 无需管道到 awk
.另外,请注意在 493
之后需要一个额外的空间在 if
健康)状况。
全部一起:
#!/bin/ksh
file="a.txt"
while read line
do
a=$( echo -n "$line" | wc -c) # echo -n to prevent counting new line
if [ "$a" -ne 493 ]; then
echo "${line}"
fi
done <"$file"
关于shell - 每行文件unix中的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27800440/