>> Read Reply from No. 2362 article  
RE: [쉘스크립트] renameto 특정 파일/디렉토리 이름 바
꾸기

등록 2002-03-29 17:22:00     조회 4
이름 단n키    

		“고전 했던 부분”은 저도 공감이 많이 갑니다. emoticon
 몇가지만 말씀드리면..
 path=`echo $pfile | sed 's//([^/]*)$//'`
 여기서는 별차이 없지만..
 path=`echo $pfile | sed 's#/([^/]*)$##'`
 위의 방법도 유효합니다. s 다음에 오는 문자는 전부 구분자로 사용하실 수 있습니다.
물론 #로 사용하시면 그 문장에선 #로 통일해야합니다.
 저는 아래의 방법을 선호합니다. bash, ksh 전부 적용이 되구요.
pfile=${pfile%/}  # 디렉토리면.. 마지막에 붙은 '/'를 없앤다.
                  # 예) /home/user/ -> /home/user
path=${pfile%/*}
file=${pfile##*/}
 reverse도 재밌네요. 저도 reverse 리스트를 만들려고 짠 게 있는데...
이건 어떨까해서 적습니다.
 # 여기서는 IFS를 변경하면 안됩니다.
# 좀 눈에 안 들어오는 단점이 있긴하지만 성능은 만족할 만합니다. emoticon
reverse=$(echo "$a" |
   awk 'BEGIN { RS="^D"; FS=""; }
        { for (i = 1; i < NF; i++) print $(NF-i); }')
 다만.. 저 RS에 들어간 문자(^D)가 Ctrl+V 누르고 Ctrl+D 를 눌렀을 때 나오는 문자인데..
그리 적당해보이지는 않습니다. --a 여기서는 쓸 수 있긴 하겠지만 말입니다.
  사족인가요 --;;;
     : 안녕하세요?
:
: 몇달전에 벼르던 녀석인데 이제서야 완성했습니다.
: KLDP에 상당히 많은 유용한 관련 팁들이 많은데 저의 직성에는 차지 않아서
: 만들어 보았습니다.
:
: 비슷한 툴이 있을것 같은데 찾질 못해서...
:
: 원래 초기 목적은 공백 문자열이 들어간 파일을 "_" 문자로 바꾸는게
: 목적이었는데 추가로 디렉토리도 가능하도록 만들었습니다.
:
: 짜면서 고전(?)했었던 부분
:
:  - 공백문자가 들어갈 경우의 for 구문($IFS 재설정으로 해결)
:  - sed 's/FROM/TO/g' 와 sed "s/FROM/TO/g" 차이점
:  - 디렉토리일 경우의 역순 만들기(20분 동안 해멤)
:  - 기타 색깔로 출력(/etc/syscofig/init 참고로 해결)
:
:
: [쉘스크립트] renameto 특정 파일/디렉토리 이름 바꾸기
:
: 본쉘로 짠 스크립트입니다.
:
: 소스가 있는 곳 emoticon이곳에 올리기에 버겁군요)
: http://ftp.linuxchannel.net/devel/renameto/renameto-sh.txt :
: 사용법 및 기타
: http://ftp.linuxchannel.net/devel/renameto/README.txt :
: 사용한 예 : 스크린샷
: http://www.linuxchannel.net/images/renameto.gif :
: [기능]
:
:  - 특정 문자열의 파일을 찾아서 바꿈
:  - 특정 문자열의 디렉토리를 찾아서 바꿈
:  - 바꾸기 전에 view 기능 제공
:  - 특정 디렉토리에서 검색가능
:  - 현재디렉토리, 모든 서브디렉토리, 특정 깊이의 디렉토리 검색
:
:
: [간단 사용법]
:
: 1. 설치(?)
: renameto-sh.txt 파일을 다운받아 renameto 이름으로 바꾸고
: 퍼미션은 755 정도로 /usr/local/bin/renameto 나 $PATH로 복사해 놓습니다.
:
: 2. 도움말
:
: $ renameto --help
:
: 옵션에서
:
: -R은 하위의 모든 디렉토리에서 검색
: -R0 은 현재 디렉토리에서만 검색
: -Rn 은 현재디렉토리에서 그다음 n단계 디렉토리까지만 검색, n은 ([0-9]*)
: -R 옵션이 없다면 현재디렉토리에서 만 검색
:
: -d, -dir, --d, --dir
:   파일대신 디렉토리에 적용
:   이 옵션이 없다면 기본적으로 파일을 그 대상으로 함
:
: -v, -view, --view, -t, -test, --test
:   파일이나 디렉토리를 바꾸지 않고 그냥 찾아서 출력만 함(확인할때)
:   이 옵션이 없다면 매치되는 파일이나 디렉토리를 찾아서 바꿈.
:
:
: 찾을 문자열-> 바꿀 문자열
:
: '/from_str/to_str/'
:  공백 문자열이 들어갈 수 있으므로 받드시 전체를 ' 나 "로 묶어줌
:  from_str문자열을 to_str문자열로 바꿈
:  양자의 구분자는 / 로 구분
:
: '찾을 디렉토리나 파일 대상'
:
: "* *" : 공백 문자열이 들어간 모든 파일이나 디렉토리 대상
: "*" : 모든 파일이나 디렉토리 대상
: "*.mp3" : 확장자(?)가 mp3인 모든 파일
: "*.[hH][tT][mM][lL]" : *.html *.HTML *.Html ... 등과 매치
: "/home/*.php" : /home 디렉토리를 대상으로 *.php 파일
: "home/*.php" : 현재 디렉토리에서 상대 경로가 home 인 디렉토리
:
:
: 3. 예제
:
: 예제1. 현재 디렉토리에서(하위로 내려가지 않고) 파일이 *.MP3 인 파일을 찾아서
: *.mp3로 바꿀려면 ?
:
: $ renameto '/MP3/mp3/' '*.MP3'
:
: 이건 rename *.MP3 *.mp3 와 같습니다.
:
: 예제2. /var/www/html 디렉토리 및 그하위 모두에서 공백 문자열이 들어간 모든
: 파일을 찾아서 공백을 없애려면?
:
: 먼저 테스트(view)해 봅니다.
: $ renameto -R -test '/ //' '/var/www/html/* *'
:
: 맞게 출력된다면
: $ renameto -R '/ //' '/var/www/html/* *'
:
: 디렉토리일 경우에는
:
: $ renameto -R -dir '/ //' '/var/www/html/* *'
:
: END
: ----------------------
 --
ㅅ 새 새ㄹ 새로 새로ㅇ 새로우 새로운
ㅅ 새 샐(?) 새ㄹ 새로 새롱(?) 새로우 새로운
 세벌식과 함께~
이름
암호


>> 관련글
2362 [쉘스크립트] renameto 특정 파일/디렉토리 이름 바꾸기  산이  2002.03.29  ....
  답장 RE: [쉘스크립트] renameto 특정 파일/디렉토리 이름 바꾸기  단n키  2002.03.29  ....
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 1.66 초 ] 작업시간: [ 0.09 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791029307
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.