서버에서 모든 셸 스크립트를 검색하고 있으며 다음 명령 으로이 작업을 수행합니다.
find / -type f -exec file --mime-type {} \; | grep "text/x-shellscript"
이것은 잘 작동하며 다음은 샘플 출력입니다.
/lib/udev/hwclock-set: text/x-shellscript
/lib/init/bootclean.sh: text/x-shellscript
/etc/network/if-up.d/openssh-server: text/x-shellscript
/etc/network/if-up.d/mountnfs: text/x-shellscript
이제 파일 이름으로 작업하고 이것을 위해 awk를 사용하려고합니다.
find / -type f -exec file --mime-type {} \; | grep "text/x-shellscript" | awk -F: '{ print $1 }'
그러나 이것은 출력을 생성하지 않습니다. 나는 파이프 등을 리디렉션하려고 시도했지만 여기 벽에 부딪쳤다.
아무도 내가 뭘 잘못하고 있는지 알고 있습니까?
@DanielBeck 작동합니다. 아마도 find가 stdout에 쓰지 않습니까? 하지만 난 ... 그 부분을 수행하는 방법을 그렙 설명 할 수
—
개는 고양이 세계 먹고
오류 출력을 표준 출력으로 리디렉션 할 수 있습니다. 그러면 여러분의 명령은 다음과 같습니다 :
—
Daniel Beck
find / -type f -exec file --meta-type {} \; | grep "text/x-shellscript" 2>&1 | awk -F: '{ print $1 }'
@DanielBeck 아니오, 도움이되지 않습니다. "find / -type f -exec 파일 --mime-type {} \; | grep"text / x-shellscript "2> & 1 1> this_file_should_not_be_empty"를 시도했지만 grep이 아무데도 출력되지 않는 것 같습니다! 파이프 리디렉션없이 텍스트가 모니터에 표시되는 경우에도 마찬가지입니다.
—
개 고양이 세계 먹고
쓸데없는 사용을
—
JdeBP
grep
제거하여 문제의 위치를 좁히고 문제의 태그 중 하나를 제거 할 수 있습니다 .
echo "/etc/network/if-up.d/mountnfs: text/x-shellscript" | awk -F: '{ print $1 }'
?