File-Command
如何讀取帶有文件的數字(魔術)?
我想用“文件繪圖”寫一個繪圖的格式
文件開頭如下:
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]
這導致…格式=
$$ A1 $$… 或 … 單位=$$ 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 ]
參考: