따라서 유효한 16진수 색상 코드와 잘못된 16진수 색상 코드가 포함된 텍스트 파일이 있습니다. 잘못된 코드를 필터링하고 유효한 코드만 인쇄하고 싶습니다. 코드가 유효하려면 해시 기호가 있어야 하며 해시 길이는 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
답변1
grep -ivE '^#([a-f0-9]{6}|[a-f0-9]{8})$' colours.txt
make
에 전달되는 내용이 되도록 하려면 메타 문자로 인식 sh
되지 않도록 하고 변수를 대체해야 합니다 .make
$
make
그냥 사용하세요 $$
.