상세 컨텐츠

본문 제목

shell command 에서 string 검사하기 string search

IT : Ubuntu

by 휀스 2015. 1. 9. 01:39

본문

shell command 에서 string 검사하기 string search


shell 에서 string 속에 특정 문구가 존재하는지를 알고 싶을 때 기존에 사용하던 방법은 grep 으로 검사를 하는 것 이였습니다.



if [ `echo $long_string | grep $short_string | wc -l` == 1 ] ;

then

echo "$long_string has $short_string"

fi


이렇게 사용하면 if 문에서 사용된 echo 때문에 shell script 의 결과물에 필요 없는 문구가 표시되기 때문에 보기에도 좋지 않고 복잡하게 여러 명령과 pipe 를 사용하게 되어 가독성도 떨어집니다.



이럴 때 사용할 수 있는 방법은 ** 입니다.

위의 내용은 아래 처럼 변경 할 수 있습니다.


if [[ $long_string == *${short_string}* ]] ;

then

echo "$long_string has $short_string"

fi


위 방법은 아주 간결하며 필요없는 내용도 보이지 않으므로 echo 를 사용하는 것 보다 더 좋습니다.



간단한 팁으로 배열을 사용할 때 자주 하는 실수 중 하나는 {} 를 누락하여 코딩한다는 것 입니다.


arry["simple array" "test in shell"]

echo "$arry[1]"


위 결과는


simple array[1]


입니다.


정상적인 사용 방법은 아래와 같습니다.


arry["simple array" "test in shell"]

echo "${arry[1]}"


결과는


test in shell


이상 shell command 에서 string 검사하기 string search 에 대한 글 이였습니다.




관련글 더보기