>> Edit article
이름
제목
패스워드
“고전 했던 부분”은 저도 공감이 많이 갑니다. :) 몇가지만 말씀드리면.. 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를 변경하면 안됩니다. # 좀 눈에 안 들어오는 단점이 있긴하지만 성능은 만족할 만합니다. :) 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 특정 파일/디렉토리 이름 바꾸기 : : 본쉘로 짠 스크립트입니다. : : 소스가 있는 곳 :(이곳에 올리기에 버겁군요) : 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 : ---------------------- -- ㅅ 새 새ㄹ 새로 새로ㅇ 새로우 새로운 ㅅ 새 샐(?) 새ㄹ 새로 새롱(?) 새로우 새로운 세벌식과 함께~
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved