unix 文件实用程序:魔术语法
Posted
技术标签:
【中文标题】unix 文件实用程序:魔术语法【英文标题】:unix file utility: magic syntax 【发布时间】:2018-06-29 15:33:18 【问题描述】:我想为file
实用程序创建一个自定义magic
文件,但我很难理解man magic
中描述的语法。
我需要测试几个地方,每个地方可以包含几个字符串。只有所有的测试都成功了,它才会打印一个文件类型。
总而言之,如果是 SQL 数据库中的字段,我想要一个类似的测试:
( byte_0 = "A" OR byte_0 = "B" OR byte_0 = "C" )
AND
( byte_1_to_3 = "DEF" OR byte_1_to_3 = "GHI" OR byte_1_to_3 = "JKL" )
或者在 Perl 正则表达式语法中:
m/^
[ABC]
(DEF|GHI|JKL)
/x
【问题讨论】:
【参考方案1】:file
有自己的语法,有数百个例子。如果文档不清楚,您应该从阅读与您的预期更改接近的示例开始。这就是我对 ncurses 所做的,例如在 terminfo
magic-file 中,将 Solaris xcurses 标头描述为字符串序列:
但是没有通过阅读这个例子获得的洞察力,
0 字符串 \032\001 # 终端名称列表的第 5 个字符,但不是 Targa 图像像素大小 (15 16 24 32) >16 字节 >32 # 名称列表,如果超过 1 则用“|”分隔像“st|stterm| simpleterm 0.4.1” >>12 正则表达式 \^[a-zA-Z0-9][a-zA-Z0-9.][^|]* 编译的 terminfo 条目“%-s”手册页不够清晰(正如您所报告的),file
按顺序处理一系列编号的步骤。
【讨论】:
以上是关于unix 文件实用程序:魔术语法的主要内容,如果未能解决你的问题,请参考以下文章