Grep
makefile 中的十六進制顏色程式碼 grep 正則表達式
所以我有一個包含有效和無效十六進制顏色程式碼的文本文件。我希望能夠過濾掉無效程式碼並只列印有效程式碼。要使程式碼有效,它必須有一個散列符號,在散列之後長 6 或 8 個字元,字母必須是 AF。我下面的 grep 命令儲存在一個 makefile 中,每次我嘗試執行該文件時,它都會給我一個錯誤,您可以在下面看到。
命令:
grep -ivE '^#([a-f0-9]{6}|[a-f0-9]{8})$' colours.txt
錯誤:
/bin/sh: 1: Syntax error: Unterminated quoted string Makefile:2: recipe for target 'run-task-1' failed make: *** [run-task-1] Error 2
程式碼:
#b293a6 #ead58f #a69d36a2 #067806 #afe6e #7f0bf7ef #dd85 #042847421 #1a283af
想要的輸出:
#b293a6 #ead58f #a69d36a2 #067806 #7f0bf7ef
grep -ivE '^#([a-f0-9]{6}|[a-f0-9]{8})$' colours.txt
要使其成為
make
傳遞給 的內容sh
,您需要防止將其make
辨識$
為元字元並嘗試替換make
變數。只需使用
$$
.