gpt4 book ai didi

linux - 将查找命令的结果用引号括起来

转载 作者:IT王子 更新时间:2023-10-29 01:09:31 27 4
gpt4 key购买 nike

所以我使用以下命令获取文件列表,其目录用引号括起来

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 命令不会为每个结果创建换行符。

如有任何帮助,我们将不胜感激。

最佳答案

find 命令末尾的 反引号 表示您正在将命令输出重定向到一个变量。正如 hex2mgl 评论的那样您正在使用 tr 删除换行符。即使您没有将结果传送到 tr,您的变量也可能不会显示换行符,除非被引用。

例如,

foo=$(find . -type f -mtime -100 -daystart -printf '"%f"\n')

将存储 find 的结果,并在变量 foo 中引用路径名。

执行 echo ${foo} 不会显示换行符,而 echo "${foo}" 会。

关于linux - 将查找命令的结果用引号括起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183866/

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