포터블기기 강좌


이번엔 배시에서 화일이름 일괄 바꾸는방법입니다.

갑자기 화일이름을 바꿔야하는데 너무 많아서 일일이 바꿔주기 어려울 때가 있죠.


sed나 awk같은 다른 프로그램 사용하지 않더라도 대개는 단순한 문자열을 더하거나 빼는 작업정도가 많기에

이런 경우에 쉽게 사용할수 있는 팁입니다.


for블럭으로 mv명령을 반복실행해주고 mv의 목적화일에 해당하는 화일을 차례로 지칭하려면 변수를 {}로 감싸줍니다.

여기서 중요한 것은 {}내에서 두가지 특별문자가 쓰이는데 %는 뒤에서부터 검색하고 /는 앞에서부터 검색하여

해당문자열을 빼줍니다.


예를 들면


${f}   #이것이 목적화일이라 합시다.

${f%.txt}  #이것은 화일이름에서 .txt부분을 지웁니다.

${f/test}  #앞에서부터 검색하여 test를 지웁니다.


치환은 위 토큰의 앞이나 뒤에 써주면 됩니다.

test_${f}   # 원래의 화일이름 앞에  test_ 문자열을 붙입니다.

${f%test.txt}.txt  # ...test.txt란 화일을 ...txt로 바꿉니다.



이해가 잘 안가실거 같은데, 실례를 듭니다.


예를들어 다음과 같은 화일들이 있다 합시다.


test1.txt

test2.txt

test3.txt



1) 화일 이름에서 test를 빼주고 싶다면,

for f in *.txt; do mv -n $f ${f/test}; done


2) 화일 이름의 확장자를 치환하려면 (.txt  -> .text로 치환)

for f in *.txt; do mv -n $f ${f%.txt}.text; done


3) 화일이름 앞에다 모두 test_를 붙이려면

for f in *.txt; do mv -n $f test_${f}; done


* 한줄에쓸땐 줄바꿈마다 ; 를 써줘야합니다.

* mv 옵션 -n 은 있는 화일에 덮어쓰지 못하게 하는 안전장치에요.

*이 팁은 korn이나 bash에서 동작하고 csh는 달라요



change_filename.png




번호 제목 작성자 작성일 조회
181 n5800+구글 앱스+리눅스에볼루션(일정,주소록,메일)- 작성중 [1] 기둥 03.31 3922
180 VIA ARM 기반의 중국산 넷북과 그 기기를 최적화 시키는 방법... [15] file 성야무인 04.04 3743
179 노트북의 트랙패드나 마우스로 팜 그래피티 입력 하기. [2] file 거스파이 04.10 3804
178 아이폰 동기화 팁 (재생횟수, 별점 유지하기) 불량토끼 04.16 5773
177 아이팟터치 사용자들을 위한 오페라 앱의 오프라인 저장 기능 [1] file minki 04.26 3541
176 VIA ARM 기반의 중국산 넷북 그리고 그 다양한 OS~~ [11] file 星夜舞人 04.26 4253
175 휴대기기 이북리더 활용 [6] 마루 05.24 3345
174 EKEN M001 안드로이드 타블렛 플리뷰~~~ [17] file 성야무인 06.03 3737
173 EKEN M001 안드로이드 타블렛 FAQs [7] 성야무인 06.20 3368
172 iBooks 의 화끈한 샘플 양 [9] file 파리 06.24 3320
171 위룰 하고 싶은데, 미국계정으로 앱스토어 접속해야하나요? [2] 바보남자 07.02 3327
170 노키아 N5800 하드리셋 방법 [3] 준용군 07.12 3375
169 DIY 철상자를 책 테이블로 [6] file 파리 07.16 3220
168 윈모바일 기기 속도향상방법(PDA 포함)-아시는 분도 많을듯 합니다~ [4] 아브라함 09.03 3403
167 [팁] 아이폰과 나이키 플러스 [1] 미케니컬 09.06 3838
166 [뽐뿌 사이트 / 휴대폰 - 간략 약어 해설] [6] 맑은하늘 09.13 4031
165 다이어트 방법 공유? [8] Freedom^^ 09.16 3144
164 [draft] 팜 to 안드로이드 주소록 옮기기 [7] file 맑은하늘 09.29 5665
163 갤럭시 S 간단 사용기.. (노란 액정, 하얀 액정) [3] 상현아빠 10.03 4206
162 Palm Desktop to Google [6] dow 10.08 3224

오늘:
19
어제:
613
전체:
15,210,080