gpt4 book ai didi

linux - 执行 ls 命令并将输出存储在变量中

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:57 25 4
gpt4 key购买 nike

命令是:-

ls-ltr|grep "$(date  +'%b %e')"|cut -d' ' -f14

输出将给出今天创建的文件名。我需要知道如何将各个文件存储在各个变量中。例如,如果我的输出中有 2 个文件,并且我想将这两个文件存储在 2 个不同的变量中。请帮我看看该怎么做

最佳答案

Don't parse ls .

如果您确定文件名不包含空格字符,您可以执行

todayfiles=( $(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-) )

如果您的文件名可能包含空格或制表符,但您确定它们不包含换行符,则可以执行以下操作

mapfile -t todayfiles < <(stat -c "%y@%n" * | grep "^$(date "+%F")" | cut -d@ -f2-)

如果你想能够处理任意文件名,你可以这样做

today=$(date "+%F")
todayfiles=()
for f in *; do
stat -c "%y" "$f" | grep -q "^$today" && todayfiles+=("$f")
done

然后使用以下命令迭代今天的文件:

for f in "${todayfiles[@]}"; do ...; done

关于linux - 执行 ls 命令并将输出存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47874243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com