识别 Linux/Solaris 中的文本/ascii 文件

识别 Linux/Solaris 中的文本/ascii 文件

我有一个小项目来构建bash脚本,在操作系统(Linux/Solaris)中从文件中搜索当前IP地址并将其替换为其他IP地址。

问题是 IP 地址可能位于文本文件中,也可能位于非文本文件(如二进制/数据文件等)中。

我使用命令:

file –mime $PATH ( --mime is valid only for Linux )

为了验证文件是否是文本文件,或者不是文本文件(如二进制文件或数据文件等)

如果我做正确的事情,请提出建议。我的结论正确吗?

例如如果命令:

file –mime $PATH

返回结果“文本/纯文本”

那么它的文本/ascii 文件,如果不是那么它不是文本文件?

第二个问题:

file –mime

--mime标志仅对 Linux 有效,但在 Solaris 中不存在,那么 Solaris 有什么替代方案?

众所周知,file命令有时不能准确识别目标文件的定义,所以如果有人有其他想法如何识别文本文件,我将很高兴得到任何精彩的建议。

答案1

find /location -type f -print | xargs file

应该是相当便携的。然后,您可以查找“[Tt]ext”等。您需要列出各种可能的输出(脚本、文本等),并查看您想要查看哪些输出。

相关内容