命令是: -
ls-ltr|grep "$(date +'%b %e')"|cut -d' ' -f14
out将提供今天创建的文件名。 我需要知道如何将单个文件存储在单个变量中。 例如,如果我在输出中有2个文件,我想将这两个文件存储在2个不同的变量中。请帮我怎么做
答案 0 :(得分:0)
如果您确定您的文件名不包含空格字符,则可以执行
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