我有一个名为 $lsoutput
的变量,我在其中存储ls -l
命令的结果
它的内容是
- -rw-r- r-- 1根FTP 44 APR 29 2003
first_file.txt
- 我想获取该文件的大小。
- 我使用以下正则表达式
if [[ "$lsoutput" =~ ^[-rwx]{10}[[:space:]][[:digit:]]+[[:space:]][[:alnum:]]+[[:space:]][[:alnum:]]+[[:space]]([[:digit:]]+) ]]
echo ${BASH_REMATCH[1]}
fi
不幸的是,这条应当不起作用。怎么了?您能提供正确的一个吗?感谢您的帮助
有更轻松的方法。
stat --format=%s <FILE>
上面的命令在字节中打印文件的大小。
不建议解析ls
输出。
使用不容易:
ls -l | awk '{print $5}'
哪个只打印文件大小?
剪切:
ls -l|tr -s ' ' |cut -d' ' -f5