从LS输出获取文件大小



我有一个名为 $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

最新更新