file - 如何 'cut' 为空?

标签 file unix null cut nul

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 会非常好。

我想非切割解决方案也很好,但我不想放弃一个简单的想法。

最佳答案

只需指定一个空分隔符:

cut -d '' -f1

(注意:-d''之间的空格很重要,因此-d和空字符串作为单独的参数传递;如果你写-d'',那么它将作为-d传递” ,然后cut会认为您尝试使用-f1作为分隔符,它会提示,并显示“分隔符必须是单个字符”的错误消息。)

关于file - 如何 'cut' 为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848426/

相关文章:

file - 如何计算两个license.txt文件之间的相似度?

javascript - 如何挂上字段类型文件?

linux - 包含日志文件的 logrotate 目录

python - 如何将列表写入每行两个项目的文件

python - 如何将 Pygame 文件夹转换为应用程序(例如 .exe)?

javascript - 如何解决 null ts 类型检查问题?

Swift 变量 Nil 导致 fatal error : unexpectedly found nil while unwrapping an Optional value

SQL UPDATE,但仅当旧值为空时

shell - grep/sed/awk 删除某一行之前的所有内容

unix - 从unix命令行将毫秒时间戳转换为日期