我有一个小项目来构建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”等。您需要列出各种可能的输出(脚本、文本等),并查看您想要查看哪些输出。