Professional Documents
Culture Documents
Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.: $ echo "ccc" - sed -e "1i aaa" -e "1i bbb" aaa bbb ccc
Ubuntu 14.04 LTS 환경을 기준으로 작성되었습니다.: $ echo "ccc" - sed -e "1i aaa" -e "1i bbb" aaa bbb ccc
https://jupiny.com/2017/07/10/linux-command-5-sed/
sed
스트림 에디터라 부르며 지정한 지시에 따라 파일이나 파이프라인 입력을 편집해서 출력해주는 명
령어
옵션
예시
: test.txt에서 “dog"를 "cat"로 치환 => 6번째 줄에 "abc"를 삽입 => 4번째 줄을 제거한 결과를
result.txt 파일에 출력
원본 파일에 출력하기
#!/bin/bash
# sed.sh
source=$1
tempfile="tempfile"
mv $source $tempfile
cat $tempfile | sed -e "4d" -e "6i abc" -e "s/dog/cat/"
> $source
rm $tempfile
$ sh sed.sh test.txt
정규 표현식 이용하기
#!/bin/bash
# expr.sh
case "$(uname)" in
Darwin|*BSD) sed="sed -E" ;; # OS X 또는 BSD 환경
*) sed="sed -r" ;; # GNU 환경
esac
expr="s/(dog|cat|lion)/tiger/"
source=$1
tempfile="tempfile"
mv $source $tempfile
cat $tempfile | $sed -e "$expr" > $source
rm $tempfile
$ sh expr.sh test.txt
역참조
번호,이름,성별,생년월일,합격여부
1,Peter,남,930503,불합격
2,John,남,911110,불합격
3,Tom,남,880818,불합격
4,Julia,여,89201,불합격
5,Steve,남,921207,합격
6,Alice,여,940616,불합격
#!/bin/bash
# back_reference.sh
case "$(uname)" in
Darwin|*BSD) sed="sed -E" ;; # OS X 또는 BSD 환경
*) sed="sed -r" ;; # GNU 환경
esac
expr="s/(9[0-9]{5},)불합격/\1합격/"
source=$1
tempfile="tempfile"
mv $source $tempfile
cat $tempfile | $sed -e "$expr" > $source
rm $tempfile
$ sh back_reference.sh applicant.csv
$ cat applicant.csv
번호,이름,성별,생년월일,합격여부
1,Peter,남,930503,합격
2,John,남,911110,합격
3,Tom,남,880818,불합격
4,Julia,여,89201,불합격
5,Steve,남,921207,합격
6,Alice,여,940616,합격
출처