[英]assign stat|grep|awk to a variable in bash
我有一个文件名文件,我需要能够使用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,因此stat的版本有些奇怪。)
将-n
传递给echo
以防止添加尾随换行符。 所以改变
echo $name
至
echo -n $name
并在文件名和文件大小之间添加:
分隔符
echo -n ${name}": "
echo $name: $(stat -x $name | sed -n '/^Size:/s///p')
这应该可以解决问题:
while read f
do
echo "${f} : $(stat -L -c %s ${f})"
done < "${filename}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.