awk는 결과를 렌더링하지 않습니다.

awk는 결과를 렌더링하지 않습니다.

내 목표는 이번 달에 디렉터리에 생성된 파일을 가져오는 것입니다.

명령이 올바른 것 같지만 결과가 렌더링되지 않습니다.

Date=`date '+%b'`

echo $Date
Oct

ls -l | awk -v d="$Date" '/d/ {print $NF}'

답변1

다음과 같이 사용해야 합니다.

ls -l | awk -v d="$Date" '$0 ~ d {print $NF}'

설명은여기

find하지만 스크립트에 사용하는 것이 더 나을 수도 있습니다.

find . -maxdepth 1 -type f -daystart -ctime -`date "+%d"`

awk대신 클래식이 있는 경우 gawk:

find * -prune -type f -cmin -`date '+%d %H %M' | awk '{print ($1*24+$2)*60+$3}'`

답변2

여기서 문제는 해당 이름을 나타내는 변수를 원하는지 패턴 내부에서 awk알 수 있는 방법이 없다는 것입니다. 리터럴과 일치시키려고 합니다 . 대신 매개변수 확장을 사용할 수 있습니다.dawkd

ls -l | awk "/$Date/ {print \$NF}"

즉, 주목해야 할 두 가지 사항이 있습니다.

관련 정보