파일 이름을 부분 문자열로 일괄 이름 바꾸기

Korr iamnot

파일이 있습니다

..
00016_0912RP10R6_RampMotorway9_0912RP10R6_13.646852_100.687103.jpg
00017_0912RP10R6_RampMotorway9_0912RP10R6_13.646956_100.686897.jpg
00018_0912RP10R6_RampMotorway9_0912RP10R6_13.647067_100.686684.jpg
...

나는 갖고 싶다

00016.jpg
00017.jpg
00018.jpg

하위 폴더를 반복하고 이름을 바꾸는 가장 좋은 Linux 명령은 무엇입니까?

Kusalananda

사용 find:

find . -type f -name '*_*.jpg' -exec sh -c '
    for pathname do
        newname=${pathname##*/}
        newname="${pathname%/*}/${newname%%_*}.jpg"
        printf "Would move %s to %s\n" "$pathname" "$newname"
        # mv -i "$pathname" "$newname"
    done' sh {} +

이것은 주어진 패턴과 이름이 일치하는 현재 디렉토리 안이나 아래의 모든 일반 파일의 경로 이름을 찾습니다. 이러한 경로 이름의 배치에 대해 주어진 경로 이름을 반복하고 파일 이름을 바꾸는 짧은 쉘 스크립트가 실행됩니다 (실제 이름 바꾸기는 안전을 위해 주석 처리됨).

같은 경로 이름이 주어지면 ./a/b/c/foo0_some_other_bits.jpg쉘 스크립트는 ./a/b/c/foo0.jpg먼저 디렉토리 foo0_some_other_bits.jpg를 삭제 (생성 ) 한 다음 첫 _문자 뒤의 모든 항목을 삭제 하고 디렉토리를 다시 추가하여이를로 변환합니다. 경로 이름의 디렉토리 비트는 하나 또는 여러 _문자 를 포함하는 경우를 대비하여 삭제 및 교체됩니다 . 이는 표준 매개 변수 확장을 사용하여 수행됩니다.

에서 globstar쉘 옵션 사용 bash:

shopt -s globstar   # use "set -o globstar" in ksh93, or remove completely in zsh
for pathname in ./**/*.jpg; do
    [ -f "$pathname" ] || continue
    newname=${pathname##*/}
    newname="${pathname%/*}/${newname%%_*}.jpg"
    printf "Would move %s to %s\n" "$pathname" "$newname"
    # mv -i "$pathname" "$newname"
done

이것은 find숨겨진 이름을 찾을 수 없다는 유일한 차이점을 제외하고는 위의 명령 과 정확히 동일 합니다 (추가 shopt -s dotglob).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

구분 된 부분 문자열을 제거하여 파일 이름 바꾸기

분류에서Dev

일부 계산을 기반으로 파일 이름 이름 바꾸기

분류에서Dev

확장명을 소문자로 일괄 이름 바꾸기

분류에서Dev

파일 이름의 일괄 바꾸기 문자

분류에서Dev

일괄 이름 바꾸기 (특정 문자 제거) 파일

분류에서Dev

파일의 마지막 몇 문자 일괄 이름 바꾸기

분류에서Dev

파일의 파일 이름을 루프로 일괄 찾기 및 바꾸기

분류에서Dev

일괄 이름 바꾸기 파일

분류에서Dev

일괄 이름 바꾸기 파일

분류에서Dev

일괄 이름 바꾸기 200000 파일

분류에서Dev

일괄 이름 바꾸기 파일

분류에서Dev

중복 문자열 부분을 삭제하는 폴더의 모든 파일 이름 바꾸기

분류에서Dev

시작 부분에 문자열을 추가하여 여러 파일 이름 바꾸기

분류에서Dev

부분을 유지하면서 파일 이름 바꾸기

분류에서Dev

파일 이름에서 추출한 문자열로 파일 이름 바꾸기

분류에서Dev

포함 된 파일 이름을 기반으로 zip 파일의 일괄 이름 바꾸기

분류에서Dev

폴더 이름을 기준으로 파일 이름 바꾸기

분류에서Dev

숫자로 파일 이름 바꾸기

분류에서Dev

초 단위로 파일을 생성 시간으로 일괄 이름 바꾸기

분류에서Dev

이름 바꾸기로 여러 파일 이름 바꾸기

분류에서Dev

이름 바꾸기 명령으로 파일 이름 바꾸기

분류에서Dev

파일 이름의 접두사와 중간 부분으로 파일 이름 바꾸기

분류에서Dev

Windows Batch로 파일의 일부 이름 바꾸기

분류에서Dev

구분 기호로 여러 파일 이름 바꾸기

분류에서Dev

원래 파일 이름의 첫 번째 문자를 기반으로 일괄 이름 바꾸기 스크립트?

분류에서Dev

이름 바꾸기 명령을 사용하여 파일의 첫 부분 이름 바꾸기

분류에서Dev

node.js 스크립트로 파일 이름의 일부 이름 바꾸기

분류에서Dev

가변 길이의 긴 파일 이름을 연도로 일괄 이름 바꾸기

분류에서Dev

R을 사용하여 파일 목록을 완전히 다른 이름으로 일괄 이름 바꾸기

Related 관련 기사

  1. 1

    구분 된 부분 문자열을 제거하여 파일 이름 바꾸기

  2. 2

    일부 계산을 기반으로 파일 이름 이름 바꾸기

  3. 3

    확장명을 소문자로 일괄 이름 바꾸기

  4. 4

    파일 이름의 일괄 바꾸기 문자

  5. 5

    일괄 이름 바꾸기 (특정 문자 제거) 파일

  6. 6

    파일의 마지막 몇 문자 일괄 이름 바꾸기

  7. 7

    파일의 파일 이름을 루프로 일괄 찾기 및 바꾸기

  8. 8

    일괄 이름 바꾸기 파일

  9. 9

    일괄 이름 바꾸기 파일

  10. 10

    일괄 이름 바꾸기 200000 파일

  11. 11

    일괄 이름 바꾸기 파일

  12. 12

    중복 문자열 부분을 삭제하는 폴더의 모든 파일 이름 바꾸기

  13. 13

    시작 부분에 문자열을 추가하여 여러 파일 이름 바꾸기

  14. 14

    부분을 유지하면서 파일 이름 바꾸기

  15. 15

    파일 이름에서 추출한 문자열로 파일 이름 바꾸기

  16. 16

    포함 된 파일 이름을 기반으로 zip 파일의 일괄 이름 바꾸기

  17. 17

    폴더 이름을 기준으로 파일 이름 바꾸기

  18. 18

    숫자로 파일 이름 바꾸기

  19. 19

    초 단위로 파일을 생성 시간으로 일괄 이름 바꾸기

  20. 20

    이름 바꾸기로 여러 파일 이름 바꾸기

  21. 21

    이름 바꾸기 명령으로 파일 이름 바꾸기

  22. 22

    파일 이름의 접두사와 중간 부분으로 파일 이름 바꾸기

  23. 23

    Windows Batch로 파일의 일부 이름 바꾸기

  24. 24

    구분 기호로 여러 파일 이름 바꾸기

  25. 25

    원래 파일 이름의 첫 번째 문자를 기반으로 일괄 이름 바꾸기 스크립트?

  26. 26

    이름 바꾸기 명령을 사용하여 파일의 첫 부분 이름 바꾸기

  27. 27

    node.js 스크립트로 파일 이름의 일부 이름 바꾸기

  28. 28

    가변 길이의 긴 파일 이름을 연도로 일괄 이름 바꾸기

  29. 29

    R을 사용하여 파일 목록을 완전히 다른 이름으로 일괄 이름 바꾸기

뜨겁다태그

보관