string insert


문자열을 특정 파일의 특정 라인에 입력하도록 하는 것인데요.


sed라는 커맨드라인 어플리케이션을 통해서 입력하도록 할 수 있더라구요. 

sed는 처음보는 것은 아니지만 익숙하지 못한데요.


sed의 -i 라는 옵션을 통해서 문자열을 입력할 수 있데요! 


특정 라인에 입력하기 위해서는 문자열 앞에 라인번호와 i 그리고 백슬러시(\)를 작성해주면 됩니다. 


aaa.txt라는 파일의 100번째 라인에 "test"라는 문자열을 입력하기 위해서는 


sed -i '100i\test' aaa.txt


string replace


사용 방법은 다음과 같네요. 


sed -i -e 's/targetString/newString/g' filename


targetString ---> old string

newString   ---> new string

filename     ---> full path + file name


주의 또는 확인하셔야 할 사항은 다음과 같아요. 


1. 꼭 작은 따옴표 안에 작성해야하는 것은 아닙니다.

    쌍따옴표로 작성하셔도 되요. 다만 targetString 그리고 newString이 변수로 대체될 때는 그냥 하시던대로 $variableName 하셔도 됩니다.


2. 작은 따옴표로 작성하신 경우에 

    targetString과 newString가 변수라면 아래와 같이 변수를 다시 작은 따옴표로 감싸주시면 됩니다.

    's/'$targetStringVariable'/'$newStringVariable'/g'


3. s로 시작하고 g로 끝나고, /(forward slash) 로 각각이 분리되어 표시되는데요.

    꼭 /(forward slash)로 나누실 필요는 없구요. 저는 #로 분리했습니다. 

    's#'$targetStringVariable'#'$newStringVariable'#g'



append string to end of file


sed를 이용해서 문자열을 파일의 맨 마지막에 추가하기 위해서는 다음과 같이 작성하시면 됩니다. 


fileName="/etc/bash.bashrc"

sed -i '$ a\text_text_text_text' $fileName


위 스크립트를 통해서 /etc/bash.bashrc 파일의 가장 마지막에 text_text_text_text라는 문자열을 입력하실 수 있어요.


파일명과 문자열을 바꾸면 어느 파일이던지 가장 마지막에 문자열을 추가하실 수 있겠네요.


delete string to end of file


sed를 이용해서 파일의 마지막 줄을 삭제하는 것은 엄청 간단하네요.


fileName="/etc/bash.bashrc"

sed -i '$d' $fileName


-i 는 insert 옵션이라고 하구요. 

d는 delete 군요.



+ Recent posts