如何根据存储在变量中的新行分隔列表计算文件总大小?

如何根据存储在变量中的新行分隔列表计算文件总大小?

我正在尝试创建一个 Nemo 脚本,它将计算所选文件的总文件大小并将其传递给脚本的其余部分。

它使用 Nemo 在选择某些文件时自行设置的 NEMO_SCRIPT_SELECTED_FILE_PATHS 环境变量。

问题是,变量包含用新行分隔路径和文件名我不知道该如何处理它们。

有任何想法吗?

编辑:如果我将变量的内容回显到文件中,则会得到以下结果: /home/sasa/Pictures/1041247.png /home/sasa/Pictures/849611447.jpg /home/sasa/Pictures/IO2.jpg

它看起来更像是空格而不是换行符分隔。

答案1

您可以使用du

du -c $(echo "$VAR")

当文件名包含空格时,此方法不起作用。

用这个:

while IFS= read -r f; do
    du "$f";
done < <(echo "$VAR") \
| grep -o "^[0-9]*" \
| paste -sd+ | bc

相关内容