awk의 패턴 매칭

awk의 패턴 매칭

file명령의 출력을 표시하기 위해 ls -la의 출력을 수정하려고 합니다 . 다음 명령은 이 목적에 적합합니다.

find /opt -type f | xargs ls -let | awk 'BEGIN { OFS="\t" } { sprintf("file \"%s\"", $10) | getline type; print type,$1,$3,$4 }' | tr ":" "\t"

ldd이제 파일 형식 출력이 "ELF.*execuatble" 패턴과 일치하는 경우 명령 출력(쉼표로 구분)을 표시하도록 수정하고 싶습니다. awk에서 사용되는 일치 키워드의 다양한 조합을 시도 if하고 일치가 성공하면 실행했지만 ldd소용이 없었습니다.

가능합니까?

운영 체제는 Solaris이고 ksh를 사용합니다.

답변1

awk는 패턴 매칭을 제공합니다

awk '/ELF*.executable/ { ... }'

편집: 귀하의 경우:

find /opt -type f | xargs ls -let | awk 'BEGIN { OFS="\t" } /ELF*.executable/ { sprintf("file \"%s\"", $10) | getline type; print type,$1,$3,$4 }' | tr ":" "\t"

관련 정보