2017-11-24

Replace texts script

파일 하나만 건드리려면 gedit로 그냥 하면 된다. 그런데 여러 디렉토리에 있는 파일들에 똑같은 작업을 하려니 시간이 많이 든다.

서브디렉토리 파일 까지 다 하려고 find 에 xargs 까지.

아래와 같이 해결.

#!/bin/bash
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== Description/=== 설명/g"
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== Syntax/=== 문법/g"
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== Parameters/=== 매개변수/g"
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== Returns/=== 반환/g"
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== Example Code/=== 예제 코드/g"
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== See also/=== 더 볼 것/g"
find . -name "*.adoc" -print0 | xargs -0 sed -i'' -e "s/=== Notes and Warnings/=== 주의와 경고/g"

다시 설명하면, *.adoc 파일을 찾아서, 그 파일들에 sed 를 실행
sed에서는 s/ 다음의 문자열을 그다음 / 다음의 문자열로 바꿈 /g 는 global 을 뜻함.
sed -i'' 는 백업파일 안 만들기.
sed -i.ori 와 같은 식으로 하면 백업파일을 확장자 .ori 로 만들어 줌

댓글 없음:

댓글 쓰기