DB 엔지니어 업무를 하다보면 업무 자동화를 위해 shellscript를 작성해야할 일이 종종 있습니다. Shell Script 문법에 관하여 알기 쉽게 정리를 해보려고 합니다.
'sed'는 스트림 편집기로, 주로 텍스트 스트림의 편집을 위해 사용되는 명령줄 도구입니다. 이름은 "Stream Editor"의 줄임말입니다. 'sed'는 텍스트의 변환, 치환, 삭제, 추가 등 다양한 작업을 수행할 수 있습니다.
'sed' 명령어의 기본 구조는 다음과 같습니다.
sed OPTIONS 'COMMAND' FILE
여기서:
일반적으로 사용되는 'sed' 명령어의 기능들:
1. Substittution('s'): 특정 패턴을 다른 패턴으로 대체합니다.
echo "Hello World" | sed 's/Hello/Hi/'
출력:
Hi World
위 명령어는 "Hello"를 "Hi"로 대체하여 출력합니다.
echo -e "apple\nbanana\norange" | sed '/banana/d'
출력:
apple
orange
'banana'가 포함된 라인이 삭제되었습니다.
echo -e "apple\nbanana\norange" | sed -n '/banana/p'
출력:
banana
"banana"이 포함된 라인만 출력됩니다.
echo -e "apple\norange" | sed '/apple/i banana'
출력:
banana
apple
orange
'apple' 위에 'banana'가 삽입되었습니다.
echo " Hello " | sed 's/^[ \t]*//'
출력:
Hello
's/^[ \t]*//' 패턴이 맨 앞의 모든 공백 및 탭 문자를 제거합니다.
's/^[ \t]*//' 정규표현식을 해석해보겠습니다.
따라서 s/^[ \t]*//는 문자열의 시작에서부터 공백 문자나 탭 문자가 나오면 해당 부분을 모두 제거하는 것을 의미합니다.