특정 패턴의 파일 찾기

특정 패턴의 파일 찾기

이름에 abc가 포함된 파일을 찾고 싶습니다.

예를 들어:

Dozain123.ctabcln_WbLogReq.log'

Dozain123.ctabcln_WbLogReq123.log

Dozain123.ctabcln_WbLogReq456.log

Dozain123.ctabcln_WbLogReq341.log

어떤 명령을 사용해야 합니까?

답변1

해당 파일이 있는 경우현재 디렉터리당신이 나열하고 싶은 것:

ls ./*abc*

이 파일을 반복하려면 다음을 수행하십시오.

for fname in ./*abc*; do
    # do something with "$fname"
done

현재 디렉터리나 일부 하위 디렉터리에서 (재귀적으로) 해당 항목을 찾으려면 다음을 수행하세요.

find . -type f -name '*abc*' -print

(여기에서는 찾고 있는 모든 이름이 디렉터리 이름 등이 아닌 일반 파일 이름이라고 가정합니다.)

뭔가 하고 싶다면이것들이름:

find . -type f -name '*abc*' -exec sh -c '
    for fname do
        # do something with "$fname" here
    done' sh {} +

파일 이름의 재귀적 일치를 수행하려면 일부 셸(기본적으로 in 및 in ) **에서 사용할 수 있는 globbing 패턴을 사용합니다 .zshshopt -s globstarbash

for fname in ./**/*abc*; do
    # do something with "$fname"
done

셸을 사용하여 zsh일반 파일 이름(예: 디렉터리 등이 아님)만 일치하는지 확인하세요.

for fname in ./**/*abc*(.); do
    # do something with "$fname"
done

관련된:

답변2

파일에서 모든 abc 이름을 찾으려면: $ grep -R abc ./Direction

또는 abc가 포함된 파일을 찾으려면: $ ls -1 | grep abc 또는 $ ls알파벳. /방향

관련 정보