
Bash에서 다음과 같은 작업을 수행하려고 합니다.
grep ( date | awk '{print "2006-" $6}' ) /some/file/here
하지만 그 구문은 올바르지 않습니다.
목표는 2011년이 현재 연도인 2006-2011 패턴에 대해 /some/file/here를 grep하는 것입니다.
답변1
grep "$(date | awk '{print "2006-" $6}')" /some/file/here
"..."
내용을 하나의 인수로 유지합니다(공백이 있더라도).
$(...)
"명령 대체"를 위한 것입니다. 여기서는 포함된 명령을 실행하는 stdout이 원래 명령줄에 배치됩니다. (또 다른 구문인 , `...`
도 일반적이지만 중첩하기가 훨씬 어렵습니다.)
더 쉬움:
grep "$(date +'2006-%Y')" /some/file/here
여기서는 날짜의 기능을 사용하여 출력 형식을 임의로 지정합니다.
이들 중 어느 것도 2006-2011 범위의 연도와 일치하지 않으며 리터럴 문자열 "2006-2011"과 일치합니다. 어떤 연도와 일치시키고 싶다면 알려주십시오.