bash - 如何告诉 find 命令转义文件名中的空格字符?

标签 bash find

我有一个单行查找命令,它递归地检查并打印出在特定时间范围内创建的特定文件类型的大小、所有者和名称。但在结果中,给出文件名列,直到目录或文件名中的第一个空格字符为止。 有没有想法可以在这个命令中解决这个问题,而无需在 bash 中编写任何循环?谢谢!

这是命令:

find /path/to/dist -type f -iname "*.png" -newermt 2015-01-01 ! -newermt 2016-12-31 -ls | sort -k5 | sort -k5 | awk '{print $5"\t"$7"\t"$11}'

最佳答案

尝试将 awk 命令更改为:

awk '{$1=$2=$3=$4=$6=$8=$9=$10="" ; print$11}'

这样整个命令就变成这样了:

find /path/to/dist -type f -iname "*.png" -newermt 2015-01-01 ! -newermt 2016-12-31 -ls | sort -k5 | awk '{$1=$2=$3=$4=$6=$8=$9=$10="" ; print$0}'

这会在行首留下一些额外的空格,希望它能满足您的目的。

我已经删除了 sort 的第二个实例,因为它与第一个实例使用相同的键进行排序,这似乎不会执行任何操作。

关于bash - 如何告诉 find 命令转义文件名中的空格字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42483587/

相关文章:

bash - 使用 bash 从斯坦福解析器输出文本文件中提取所有名词短语

bash - 为什么函数定义中花括号前需要空格?

c++ - 寻找路径的算法

C# 创建查找下一个函数

c++ - unordered_map中哪个 “find”或 “at”更快?

JAVASCRIPT:计算 REGEX 结果的数量

bash - 如何将变量从 shell 脚本传递到 expect 脚本?

python - 查找并删除多个文件中的重复内容

linux - bash 脚本在循环中使用 gcc 来编译所有

bash - 查找和压缩数百万个文件的更有效方法