sample 파일 내용
1 2 3 4 5 6 7 8 9 10 11 |
[fruit] apple 1000 banana 2000 [animal] dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예) 1에서 3행 출력
> sed -n '1,3p' sample
1 2 3 |
[fruit] apple 1000 banana 2000 |
예) 1~3행, 9~11 행 출력(다중 조건은 -e 옵션 사용)
> sed -n -e '1,3p' -e '9,11p' sample
1 2 3 4 5 6 |
[fruit] apple 1000 banana 2000 [car] bmw 40000 Benz 5000 |
예) 공백라인제거
> sed '/^$/d' sample
1 2 3 4 5 6 7 8 9 |
[fruit] apple 1000 banana 2000 [animal] dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예)fruit과 일치하는 행의 다음라인에 "strawberry 3000" 행을 추가
sed '/<일치하는문자열>/a\추가할문자열'
> sed '/fruit/a\ strawberry 3000' sample
1 2 3 4 5 6 7 8 9 10 11 12 |
[fruit] strawberry 3000 apple 1000 banana 2000 [animal] dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예)fruit과 일치하는 행의 앞 라인에 "strawberry 3000" 행을 추가
> sed '/fruit/i\strawberry 3000' sample
1 2 3 4 5 6 7 8 9 10 11 12 |
strawberry 3000 [fruit] apple 1000 banana 2000 [animal] dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예) fruit과 일치하는 행 전체 라인을 [temp] 치환
> sed '/fruit/c\[temp]\' sample
1 2 3 4 5 6 7 8 9 10 11 |
[temp] apple 1000 banana 2000 [animal] dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예) [ 시작하는 라인만 출력( [ 는 특수 문자로 일반문자로 인식 시키기 위해 특수문자 앞에 \ ,백슬래쉬 를 넣어준다)
> sed -n '/^\[/p' sample
1 2 3 |
[fruit] [animal] [car] |
예) apple 단어를 strawberry 로 치환후 출력
> sed 's/apple/strawberry/g' sample
1 2 3 4 5 6 7 8 9 10 11 |
[fruit] strawberry 1000 banana 2000 [animal] dog 12000 cat 5000 [car] bmw 40000 Benz 5000 |
예) apple을 strawberry로 치환후 치환된 라인만 출력
> sed -n 's/apple/strawberry/p' sample
1 | strawberry 1000 |
* -n, p 옵션은 같이 사용되며 연관된 라인만 출력
예) dog로 시작하는 행에 # 처리
> sed 's/^dog/#&/g' sample
1 2 3 4 5 6 7 8 9 10 11 |
[fruit] apple 1000 banana 2000 [animal] #dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예) 2000 문자열을 포함 하는 행의 첫번째열에 # 추가(주석처리)
> sed '/2000/s/^/#/' sample
1 2 3 4 5 6 7 8 9 10 11 |
[fruit] apple 1000 #banana 2000 [animal] #dog 12000 cat 5000 [car] bmw 40000 Benz 50000 |
예) 실제 파일의 내용을 변경
-i : 옵션
> sed -i 's/banana/\#banana/' sample
> sed -i 's/^\#banana/banana/' sample
예) solaris 에서 sed -i 옵션(기본 적으로 solaris에서는 -i 옵션을 지원하지 않음)
> sed -i
sed: illegal option -- i
-i 옵션과 동일한 효과를 보기 위해서는 아래와 같이 한다.
> sed 's/^banana/\#banana/' sample > sample.edited.txt && mv sample.edited.txt sample
'운영체제 > Unix & Linux' 카테고리의 다른 글
shell script - array (0) | 2023.08.19 |
---|---|
Device /dev/sdb excluded by a filter. (0) | 2023.07.17 |
gnome-initial-setup disable (0) | 2023.06.05 |
nmcli 를 이용한 bonding 구성 (0) | 2023.05.31 |
nftables를 사용하여 SNAT 구성 (0) | 2023.05.30 |