所以我有一行这样的代码:
result=`find . -type f -size -1000c -print0 | xargs -0 ls -Sh | head`
for i in $result; do
item=`wc -c $i`
echo $item1
done
这将打印出当前文件夹中最多 1000 字节的所有文件,其格式如下:
文件大小 ./文件名
但我想摆脱“./”符号,所以我尝试使用“cut”
我想做类似的事情:
for i in $result; do
item=`wc -c $i`
item1=`cut -f 1 $item` // this gives me the size
item2=`cut -c 7- $item` // this gives me all the character after ./
echo item1, item2 // now make it print
done
但我收到如下错误:
cut: 639: No such file or directory
谁能给我一个提示吗?我很感激。
答案1
根据您的系统对 POSIX 的支持,我相信这将为您提供您想要实现的相同结果:
find . -type f -size -1000c -printf '%P %s Bytes\n'
答案2
答案3
尝试这个:
ls -l | awk '$5 <= 1000{print $5, $9}'
答案4
find . -type f -size -1000c -printf "%s %f\n"
%s
打印文件的大小(以字节为单位)。
%f
打印删除所有前导目录的文件名(仅最后一个元素)。