【发布时间】:2012-03-24 01:43:36
【问题描述】:
Unix 'file' 命令有一个 -0 选项来在文件名后输出一个空字符。据说这很适合与 'cut' 一起使用。
来自man file:
-0, --print0
Output a null character ‘\0’ after the end of the filename. Nice
to cut(1) the output. This does not affect the separator which is
still printed.
(注意,在我的 Linux 上,'-F' 分隔符没有被打印 - 这对我来说更有意义。)
如何使用 'cut' 从 'file' 的输出中提取文件名?
这就是我想做的:
find . "*" -type f | file -n0iNf - | cut -d<null> -f1
<null> 是 NUL 字符。
嗯,这就是我想要做的,我想做的是从具有特定 MIME 类型的目录树中获取所有文件名。我使用 grep(未显示)。
我想处理所有合法的文件名,而不是卡在带有冒号的文件名上,例如,在他们的名字中。因此,NUL 会非常好。
我想非切割解决方案也不错,但我不想放弃一个简单的想法。
【问题讨论】: