파일의 부분 이름을 기반으로 파일 복사

살구

폴더에 수백만 개의 xml 파일이 있습니다. 파일 이름은 특정 패턴을 따릅니다.

ABC_20190101011030931_6049414.xml

이것에서는 xml 이전의 마지막 숫자 세트에만 관심이 6049414있습니다. 텍스트 파일에 약 8000 개의 숫자 목록이 있습니다. 텍스트 파일의 세부 사항은 다음과 같습니다.

104638
222885
108880071

다음 코드를 사용하여 텍스트 파일에 지정된 번호와 일치하는 폴더에서 파일을 이동합니다.

#folder where the xml files are stored  
cd /home/iris/filesToExtract  
SECONDS=0

#This line reads each number in the hdpvr.txt file and if a match is found moves that file to another folder called xmlfiles.  
nn=($(cat /home/iris/hdpvr.txt));for x in "${nn[@]}";do ls *.xml| grep "$x"| xargs -I '{}' cp {} /home/iris/xmlfiles;done  

#this line deletes all the other xml files from filesToExtract folder
find . -name "*.xml" -delete  
echo $SECONDS

두 가지 문제가 있습니다. 1 일치하는 파일이 있어도 일부 파일이 이동되지 않습니다. 2. 예를 들어 파일 이름의 중간 부분에 일치하는 항목이있는 경우에도

from this ABC_20190101011030931_6049414.xml -> this 20190101011030931  

일치하는 항목이 발견되면 여전히 이동합니다 .... 정확한 일치 항목을 얻고 파일을 이동하는 방법은 무엇입니까?

Darxmurf

이것이 직업을 만들까요?

pushd /home/iris/filesToExtract
for i in $(</home/iris/hdpvr.txt); do find . -mindepth 1 -maxdepth 1 -type f -name "*_$i.xml" -print0 | xargs -r -0 -i mv "{}" /home/iris/xmlfiles; done
find . -mindepth 1 -maxdepth 1 -type f -name "*.xml" -delete  
popd
  • pushd는 지정된 디렉토리로 이동합니다.
  • for + find 줄은 텍스트 파일에서 ID를 가져 와서 _ID.xml과 같이 끝나는 파일을 찾아 / home / iris / xmlfiles 폴더로 이동합니다.
  • 마지막 찾기는 이동되지 않은 파일을 삭제하지만 하위 폴더가 아닌이 폴더에서만 삭제됩니다.
  • popd는 원래 디렉토리에 다시 넣습니다.

mv로 잔인한 방법으로 할 수도 있지만 파일을 찾을 수 없으면 오류가 발생합니다.

pushd /home/iris/filesToExtract
for i in $(</home/iris/hdpvr.txt); do mv "*_$i.xml" /home/iris/xmlfiles; done
find . -mindepth 1 -maxdepth 1 -type f -name "*.xml" -delete  
popd

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파일 이름의 마지막 숫자 부분을 처음으로 복사

분류에서Dev

텍스트 파일 내의 목록에 이름을 부분적으로 일치시켜 특정 파일 복사

분류에서Dev

파일 이름의 날짜를 기반으로 파일 복사

분류에서Dev

파일 이름의 일부를 기반으로 다른 디렉토리로 파일 복사

분류에서Dev

파일의 동일한 특정 부분을 다른 파일로 복사

분류에서Dev

파일 이름의 일부를 기반으로 파일을 폴더로 이동

분류에서Dev

부분 파일 이름을 기반으로 여러 Excel 파일 열기

분류에서Dev

파일 이름의 일부를 기반으로 파일을 이동하는 powershell

분류에서Dev

박쥐를 사용하여 이름의 일부를 기반으로 파일을 폴더로 이동

분류에서Dev

새 이름에 폴더 이름의 일부를 사용하여 파일을 반복적으로 복사하고 이름을 바꿉니다.

분류에서Dev

이름을 기반으로 파일을 복사하는 배치 파일

분류에서Dev

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

분류에서Dev

파일 이름을 기반으로 특정 디렉토리에 파일 복사

분류에서Dev

쉘 스크립트 : 파일 이름의 일부를 기반으로 파일 사용

분류에서Dev

git : 파일의 이전 버전을 부분적으로 복원

분류에서Dev

파일 이름의 중간 부분을 앞으로 이동

분류에서Dev

파일 이름의 마지막 부분을 앞으로 이동

분류에서Dev

Python을 사용하여 데이터를 기반으로 파일을 여러 부분으로 분할

분류에서Dev

부분 이름을 기반으로 디렉토리에서 파일 제거

분류에서Dev

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

분류에서Dev

파일 내부의 목록을 사용하여 파일 이름 찾기

분류에서Dev

파이썬을 사용하여 파일 이름을 두 부분으로 분할해야합니다.

분류에서Dev

파일 이름의 문자를 기반으로 파일을 복사하고 원격으로 실행하는 배치 파일

분류에서Dev

특정 기준에 따라 다른 파일의 일부 이름을 배열로 복사하고 싶습니다.

분류에서Dev

파일 이름의 일부를 기반으로 폴더를 만들고 awk를 사용하여 특정 열을 추출하고 이름을 바꾸는 방법

분류에서Dev

파일 이름의 일부를 기반으로 폴더를 만들고 awk를 사용하여 특정 열을 추출하고 이름을 바꾸는 방법

분류에서Dev

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

분류에서Dev

여러 파일의 탭 이름을 기반으로 Excel 복사 / 붙여 넣기 데이터

분류에서Dev

파이썬을 사용하여 일치하는 부분을 기반으로 경로의 일부를 어떻게 바꿀 수 있습니까?

Related 관련 기사

  1. 1

    파일 이름의 마지막 숫자 부분을 처음으로 복사

  2. 2

    텍스트 파일 내의 목록에 이름을 부분적으로 일치시켜 특정 파일 복사

  3. 3

    파일 이름의 날짜를 기반으로 파일 복사

  4. 4

    파일 이름의 일부를 기반으로 다른 디렉토리로 파일 복사

  5. 5

    파일의 동일한 특정 부분을 다른 파일로 복사

  6. 6

    파일 이름의 일부를 기반으로 파일을 폴더로 이동

  7. 7

    부분 파일 이름을 기반으로 여러 Excel 파일 열기

  8. 8

    파일 이름의 일부를 기반으로 파일을 이동하는 powershell

  9. 9

    박쥐를 사용하여 이름의 일부를 기반으로 파일을 폴더로 이동

  10. 10

    새 이름에 폴더 이름의 일부를 사용하여 파일을 반복적으로 복사하고 이름을 바꿉니다.

  11. 11

    이름을 기반으로 파일을 복사하는 배치 파일

  12. 12

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

  13. 13

    파일 이름을 기반으로 특정 디렉토리에 파일 복사

  14. 14

    쉘 스크립트 : 파일 이름의 일부를 기반으로 파일 사용

  15. 15

    git : 파일의 이전 버전을 부분적으로 복원

  16. 16

    파일 이름의 중간 부분을 앞으로 이동

  17. 17

    파일 이름의 마지막 부분을 앞으로 이동

  18. 18

    Python을 사용하여 데이터를 기반으로 파일을 여러 부분으로 분할

  19. 19

    부분 이름을 기반으로 디렉토리에서 파일 제거

  20. 20

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

  21. 21

    파일 내부의 목록을 사용하여 파일 이름 찾기

  22. 22

    파이썬을 사용하여 파일 이름을 두 부분으로 분할해야합니다.

  23. 23

    파일 이름의 문자를 기반으로 파일을 복사하고 원격으로 실행하는 배치 파일

  24. 24

    특정 기준에 따라 다른 파일의 일부 이름을 배열로 복사하고 싶습니다.

  25. 25

    파일 이름의 일부를 기반으로 폴더를 만들고 awk를 사용하여 특정 열을 추출하고 이름을 바꾸는 방법

  26. 26

    파일 이름의 일부를 기반으로 폴더를 만들고 awk를 사용하여 특정 열을 추출하고 이름을 바꾸는 방법

  27. 27

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

  28. 28

    여러 파일의 탭 이름을 기반으로 Excel 복사 / 붙여 넣기 데이터

  29. 29

    파이썬을 사용하여 일치하는 부분을 기반으로 경로의 일부를 어떻게 바꿀 수 있습니까?

뜨겁다태그

보관