μ˜€λžœλ§Œμ— ν¬μŠ€νŒ…μ„ ν•©λ‹ˆλ‹€.


뭐, κ·Έλƒ₯ μ’…μ’… μ‚¬μš©ν•˜λŠ” 건데 맨날 κΉŒλ¨Ήμ–΄μ„œ 계속 κ΅¬κΈ€λ§ν•˜κ²Œ λ§Œλ“œλŠ” viμ—μ„œ λ¬Έμžμ—΄ μΉ˜ν™˜ν•˜κΈ°μ— λŒ€ν•œ λ‚΄μš©μž…λ‹ˆλ‹€.


*nix ν™˜κ²½μ—μ„œ μž‘μ—…μ„ ν•˜κ²Œλ˜λ©΄ μ„€μ • νŒŒμΌμ„ μˆ˜μ •ν•  일이 많이 μƒκΉλ‹ˆλ‹€.


μ΄λ•Œ 파일 λ‹€μš΄λ‘œλ“œ κ²½λ‘œλ‚˜, 이런 μ €λŸ° κ²½λ‘œλ“€μ„ config 파일 μ•ˆμ— 섀정해놓고 μ‚¬μš©ν•˜κΈ°λ„ ν•˜λŠ”λ°, μ΄λ•Œ 경둜 κ°œμˆ˜κ°€ 많고 μ•žλΆ€λΆ„μ˜ κ²½λ‘œλŠ” λ™μΌν•œ 것듀이 λ§Žμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.


예λ₯Όλ“€μ–΄, /aaa/bbb/myapp/conf/config.properties νŒŒμΌμ— λ‹€μŒκ³Ό 같은 λ‚΄μš©λ“€μ΄ μžˆμ„ 수 있죠.


.

.

myapp.root=/aaa/bbb/myapp

myapp.log=/aaa/bbb/myapp/log

myapp.modules=/aaa/bbb/myapp/modules

.

.


μ €λŸ°μ‹μœΌλ‘œ κ²½λ‘œκ°€ μ €μž₯이 λ˜μ–΄μžˆλŠ”λ°, μ•žλΆ€λΆ„μ˜ μ ˆλŒ€κ²½λ‘œλ₯Ό λ‹€λ₯Έ 경둜둜 λ³€κ²½ν•΄μ£Όκ³  싢을 λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 파일 μ‚¬μ΄μ¦ˆκ°€ μž‘κ³  4~5개 정도면 ν•˜λ‚˜ν•˜λ‚˜ μˆ˜μ •μ„ ν•΄μ€˜λ„ λ˜κ² μ§€λ§Œ, 파일 μ‚¬μ΄μ¦ˆκ°€ 크고 경둜 μ„€μ •ν•˜λŠ” 뢀뢄이 μ—¬κΈ°μ €κΈ° 흩어져 있으면 일일이 μ°Ύμ•„μ„œ μˆ˜μ •ν•˜κΈ°κ°€ 쉽지 μ•ŠμŠ΅λ‹ˆλ‹€.


이럴 λ•Œ μ‚¬μš©ν•˜λΌκ³  viμ—μ„œλŠ” κ°•λ ₯ν•œ μΉ˜ν™˜ κΈ°λŠ₯을 μ œκ³΅ν•˜κ³ μžˆμŠ΅λ‹ˆλ‹€.


%s/μΉ˜ν™˜ν•˜λ €λŠ”λ¬Έμžμ—΄μ •κ·œμ‹/κ²°κ³Όλ¬Έμžμ—΄μ •κ·œμ‹/μ˜΅μ…˜


vi둜 λ¬Έμ„œλ₯Ό 열어놓은 μƒνƒœμ—μ„œ :을 μž…λ ₯ν•˜μ—¬ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•  수 μžˆλ„λ‘ ν•œ λ’€ μœ„ ν˜•μ‹μ— 맞게 λ¬Έμžμ—΄ 및 μ˜΅μ…˜μ„ μž…λ ₯ν•΄μ£Όλ©΄ 파일 μ „μ²΄μ—μ„œ νŠΉμ • λ¬Έμžμ—΄μ„ μ°Ύμ•„μ„œ κ²°κ³Όλ¬Έμžμ—΄λ‘œ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


μœ„ 예λ₯Όλ“€μ–΄ /aaa/bbb/myapp을 /ccc/ddd/app 으둜 변경을 ν•˜κ³  μ‹Άλ‹€λ©΄


%s/\/aaa\/bbb\/myapp/\/ccc\/ddd\/app/g


라고 μž…λ ₯ν•΄μ£Όλ©΄ 전체 파일의 λ‚΄μš©μ„ κ²€μƒ‰ν•˜μ—¬ /aaa/bbb/myapp λ¬Έμžμ—΄μ„ 찾은 λ’€ /ccc/ddd/app 으둜 μΉ˜ν™˜ν•΄μ€λ‹ˆλ‹€.


λͺ…λ Ήμ–΄λ₯Ό μ‚΄νŽ΄λ³΄λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.


%s : λ¬Έμ„œ 전체

g : ν•œμ€„μ— 동일 νŒ¨ν„΄μ΄ μ—¬λŸ¬κ°œ μ‘΄μž¬ν•˜λŠ” 경우 λͺ¨λ‘ 적용

i : λŒ€μ†Œλ¬Έμž ꡬ뢄 μ•ˆν•¨




μ΄μƒμœΌλ‘œ κ°„λ§Œμ˜ ν¬μŠ€νŒ…μ„ λ§ˆμΉ©λ‹ˆλ‹€~