我想计算一个文件中的所有行,其中字节数大于一个值(比如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"
Run Code Online (Sandbox Code Playgroud)
你的方法非常好,只有你必须做,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"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3194 次 |
最近记录: |