"파일 드로잉"을 사용하여 그림의 형식을 지정하고 싶습니다.
파일은 다음과 같이 시작됩니다.
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]...또는...unit=[m]입니다.
답변1
의 정규식은 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]
(내 겸손한 의견으로는) 더 나은 접근 방식은 다음과 같습니다.버전그리고단위끈:
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 ]
인용하다: