我想用“文件绘图”编写绘图的格式
文件开始像:
CAD
A1
mm
(A1之后为空白)
或者:
CAD
A00
m
(在“ m”后留空白)
我尝试了类似文件魔术般的操作:
0 string CAD\n CAD-Drawing
>&0 regex ^A[0-9]+ Format=[%s]
>>&0 search \n
>>>&0 regex ^[a-z]+ Units=[%s]
但是没有运气!有什么办法可以解决这个问题?我宁愿没有空白。
那不仅仅意味着:
0 string CAD\n CAD-Drawing
>&0 string x Format=[%s]
>>&0 string x Units=[%s]
结果为... Format = [A1] ...或... Units = [m]
中的man magic
正则表达式未详尽描述。但是,请看一下JigglyNaga给出的出色答案。
一开始,你一定要逃逸正则表达式几个大字在魔术文件:^
,+
和空格的例子。这是使魔术文件适用于您描述的文件的两种方法:
0 string CAD\n CAD-Drawing
>&0 regex \^A[0-9]\+ Format=[%s]
>>&0 search \n
>>>&0 regex \^[a-z]\+ Units=[%s]
这将忽略空格,因此将打印以下内容:
$ file -m mmm file[12].cad
file1.cad: CAD-Drawing Format=[A1] Units=[mm]
file2.cad: CAD-Drawing Format=[A00] Units=[m]
一种更好的方法(以我的愚见)是在Version和Units字符串中保留空格:
0 string CAD\n CAD-Drawing
>&0 regex \^A[0-9\ ]\+ Format=[%s]
>>&0 search \n
>>>&0 regex \^[a-z\ ]\+ Units=[%s]
(请注意,即使它们位于字符组中,我也需要对其进行转义)。
打印以下内容:
$ file -m mmm file[12].cad
file1.cad: CAD-Drawing Format=[A1 ] Units=[mm]
file2.cad: CAD-Drawing Format=[A00] Units=[m ]
参考:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句