我有一个文件名文件,我需要能够使用bash获取这些文件的大小。 我有以下脚本,但它会在不同的行上打印文件名和大小,如果可能的话,我希望它能在一行上完成。
#!/bin/sh
filename="$1"
while read -r line
do
name=$line
vars=(`echo $name | tr '.' ' '`)
echo $name
stat -x $name | grep Size: | awk '{ print $2 }'
done < "$filename"
我喜欢这种形式:
filename: $size
我该怎么做? (我正在使用OSX,因此有点奇怪的统计版本。)
答案 0 :(得分:1)
将-n
传递给echo
,以防止添加尾随换行符。所以改变
echo $name
到
echo -n $name
并在文件名和文件大小之间添加:
分隔符
echo -n ${name}": "
答案 1 :(得分:0)
echo $name: $(stat -x $name | sed -n '/^Size:/s///p')
答案 2 :(得分:0)
这应该可以解决问题:
while read f
do
echo "${f} : $(stat -L -c %s ${f})"
done < "${filename}"