是否可以在bash变量中存储“查找”输出以进一步详细说明每一行?

时间:2019-03-27 15:27:20

标签: bash find debian

出于备份目的,我试图基于文件的工作日对目录的内容进行排序。我尝试使用“查找”来提取和操作数据,并将输出存储在变量中以随后过滤列表,但是当我检查变量的内容时,所有行都存储在gheter中!如何保持拆分结果?

#!/bin/sh
SOURCEFOLDER='/path'
#this just set the folder that contains the files that I want to backup

DAYLIST="$(find $SOURCEFOLDER -maxdepth 1 -mtime +0 -type f -printf '%Tw:%h/%f\0')"
#this is my find expression. basically search files older than 1 day, only in the specified directory, and add the weekday number and ":" in front of the full path/filename

echo "$DAYLIST"

我希望输出类似

1:/path/filenameA.ext
0:/path/filenameB.ext
2:/path/filenameC.ext

反而我得到

1:/path/filenameA.ext0:/path/filenameB.ext2:/path/filenameC.ext

我不知道是否做了多行变量。我在回显行中也尝试了不同的方法,正如我在此论坛和其他论坛上所读到的(例如 echo“ $ {DAYLIST}” )一样,但结果是一样的。 也许我使用了错误的方法将数据放入变量中?

我需要对输出进行拆分,以便对每一行执行不同的操作。

编辑: 问题不是重复:

  1. 使用#!/ bin / sh或#!/ bin / bash不会更改结果
  2. print0 不支持参数'%Tw:%h /%f \ 0'
  3. 复制答案中标记为重复的解决方案, 并使用我的“查找”表达式,该变量仅存储一行

0 个答案:

没有答案