所以我使用以下命令获取包含引号的目录的文件列表
find /path -type f -mtime -100 -daystart -printf "%f\n" | sed 's/^/"/g' | sed 's/$/"/g' | tr '\n' ' '`
但是现在我只想要那里的文件名,所以我添加了
-printf "%f\n"
给我
find /path -type f -mtime -100 -daystart -printf "%f\n" | sed 's/^/"/g' | sed 's/$/"/g' | tr '\n' ' '`
但现在结果不再包含在引号中。我认为printf命令没有为每个结果创建换行符。
任何帮助都将不胜感激。
答案 0 :(得分:5)
find
命令末尾的反引号表示您正在将命令输出重定向到变量。正如hex2mgl所述,您正在使用tr
删除换行符。即使您没有将结果汇总到tr
,除非引用,否则您的变量可能不会显示换行符。
例如,
foo=$(find . -type f -mtime -100 -daystart -printf '"%f"\n')
会将find
的结果与变量foo
中引用的路径名存储起来。
执行echo ${foo}
不会显示新行,而echo "${foo}"
则会。