0
내가 그 안에 서브 디렉토리의 많은 파일과 디렉토리에 주어진 문자열로 일부 파일을 찾기 위해 노력하고있어 가장 적절한 방법
내가 알고 정규식/글로브 표현 대상 파일을 일치하고 다른 명령에서 중간 디렉토리의 이름. 예 디렉토리 목록 명령 출력 :1234
5321
4546
2456
내가 찾아 그렙를 사용하여 할 노력하고있어,하지만 난 xargs를을 사용하여 찾을 제대로 디렉토리 이름을 전달할 수 없습니다. 최종 명령은 다음과 같습니다
commandOutputDirs | xargs -d\n find /path/to/search/*/{} -type f -name "*fileName*"
하지만 오류 다음 얻을 =
내가 사용하는 에코 대신
/경로 /로/검색/*/{}
을 찾으려고find: paths must precede expression: 1234
는
,691로 평가/경로/to/search/path 1234
동일한 효과를 얻기 위해 이러한 인수를 전달해야합니까?
while read line; do find /path/$line -type f -name "*filename* < pattern.txt
는 명령 줄 출력은 다음과 같이 할 경우 :
commandLineOutput | while read line; do find /path/$line -type f -name "*filename*
실제로 무엇을하려고하는지 이해하기 어렵습니다. 내용물에 문자열이 들어있는 파일을 찾으십니까? 아니면 이름에 주어진 문자열이 들어있는 파일을 찾고 있습니까? 또는 경로에 주어진 문자열이 들어있는 파일을 찾으십니까? 그리고 그 파일을 찾을 때 그 파일들로 무엇을하고 싶습니까? –
불명확해서 죄송합니다. 주어진 문자열이 특정 이름의 파일에있는 일부 디렉토리에 있는지 알아야합니다 (로그 파일에서 오류를 찾고 있습니다). ** commandOutputDirs **에서 파일을 찾을 하위 디렉토리의 이름을 얻을 수 있습니다. 또한 나중에 찾을 문자열의 파일 이름도 알고 있습니다. 나는 파일 목록을 얻고 그 문자열을 찾기 위해 grep하고 싶다. – mtraton
좋아요? find/tmp/etc// some/Where/Else -type f ... –