我有一个名为$lsoutput
变量,其中我存储ls -l
命令的结果
它含量获取文件大小
- -rw-R - R-- 1根的ftp 44 Apr 29 2003
first_file.txt
- 我想得到该文件的大小。
- 我useed以下正则表达式
if [[ "$lsoutput" =~ ^[-rwx]{10}[[:space:]][[:digit:]]+[[:space:]][[:alnum:]]+[[:space:]][[:alnum:]]+[[:space]]([[:digit:]]+) ]]
echo ${BASH_REMATCH[1]}
fi
Unfortuantely这个正则表达式不起作用。它有什么问题?你能提供一个正确的吗?感谢您的帮助
参见[为什么你不应该解析'ls'的输出(http://mywiki.wooledge.org/ParsingLs) - 尤其是标题为“获取元数据从一个文件“ –
考虑'size = $(wc -c
相关:[可移植的方式获取文件大小以字节在壳](https://stackoverflow.com/questions/1815329/portable-way-to-get-file-size-in-bytes-in-shell) –