[Mac, Linux] paste 명령으로 rename 용 sh 스크립트 작성해 보기 Computer Tip

다음과 같은 100여개의 이미지 파일이 있었습니다.

01-0010.png
01-0020.png
01-0030.png
...
01-1000.png

이 파일을 모두
02-0010.png
02-0020.png
02-0030.png
...
02-1000.png

이라고 이름을 바꾸고 싶은데요,

저는 손이 게을러서 노가다를 못 뛰어요.
그래서 다음과 같이 작업했습니다.

$ ls *.png > foo.sh
그러면 foo.sh 에는 한라인에 하나의 파일이 들어있게 됩니다.

이제 bar.sh 라고 foo.sh를 복사해 줍니다.

$ cp foo.sh bar.sh

그리고 vi로 bar.sh 를 열어,
다음 ex 명령어를 줍니다.

: %s/^01/02/g

그러면 01로 시작되는 것을 모두 02 로 변경하였습니다.

이제는 paste 명령을 이용하여 

$ paste foo.sh bar.sh > fb.sh

그러면 fb.sh 파일에는

01-0010.png 02-0010.png
01-0020.png 02-0020.png
01-0030.png 02-0030.png
...
01-1000.png 02-1000.png

라고 보입니다.

다시 fb.sh 를 열어 다음과 같이 ex 명령을 주면,

: %s/^/mv /g

mv 01-0010.png 02-0010.png
mv 01-0020.png 02-0020.png
mv 01-0030.png 02-0030.png
...
mv 01-1000.png 02-1000.png

라고 바뀝니다.

이제 
$ bash -x fb.sh

라고 실행하면 원하는 rename 이 됩니다.

리눅스와 맥에서 모두 존재하는 paste 명령은 두 컬럼으로 이루어져 있는 파일을
서로 연결시키는 역할을 합니다.


어느 분께는 도움이 되셨기를 ..

덧글

  • 반달가면 2020/05/12 21:33 # 답글

    맥에서는 어떤지 모르겠는데 리눅스에서는 아래와 같이 명령어 하나로 가능합니다.

    rename 's/^01/02/' *.png

    [bash: mv, rename] 파일/디렉토리 이름 바꾸기
    http://bahndal.egloos.com/468623
  • 지훈현서아빠 2020/05/13 13:56 #

    직접 shell command 를 이용하는 방법이 있었군요~
    좋은 정보 감사드려요~
    오늘도 좋은 하루 되셔요 ^^
댓글 입력 영역

구글애드텍스트