sed [program] by 바죠

sed
https://en.wikipedia.org/wiki/Sed
sed는 비대화형 방식의 줄 단위 편집기이다.
표준입력이나 파일에서 텍스트를 입력으로 받아, 주어진 줄들에 대해 한 번에 한 줄씩 특정 처리를 한 다음 그 결과를 표준출력이나 파일로 내 보낸다.
sed는 쉘 스크립트에서 파이프에 걸어 쓸 수 있는 몇몇 도구중 하나이다.


stream editor
비대화형 편집기 (기본적으로 모든 행 출력한다.)
편집된 데이터의 출력은 표준 출력
편집시 파일의 한 줄을 읽고 그 줄에 주어진 편집 명렬어를 수행한 결과를 출력 (한 번에 한 줄을 처리한다.)

파일처러, 파이프라인 처리가 된다는 것이 sed의 가장 두더러진 특징이다.

search, print 가 기본 명령패턴이다.

sed 's/hello/world/' input.txt  >output.txt
sed 's/hello/world/' < input.txt > output.txt
cat input.txt | sed 's/hello/world/' > output.txt


sed -n '/abcd/p' filename
n : 읽은 줄을 프린트하지 않는다는 뜻 (기본 출력 억제)
abcd 를 찾았다면 출력한다.

sed '/TD/d'  filename
줄 삭제
sed '/Src/!d' filename
이 줄만 남기고 삭제

sed '/^$/d' filename
모든 공백 라인 삭제

Love, love 찾았다면 출력한다.
sed -n '/[Ll]ove/p' filename 

각 행의 첫 네글자 삭제
sed 's/....//'  filename

각 행의 마지막 네글자 삭제
sed 's/....$//'  filename
 
첫 라인 지우기
sed '1d'  filename

마지막 라인 지우기
sed '$d'  filename

seq 10 | sed -n '4,6p'
4
5
6

seq 10 | sed -n  '4,/[0-9]/p'
4
5

seq 10 |sed -n '4,1p'
4


substution

cat test| sed 's/t/T/'  

sed 's/t/T/' test

sed  's/t/T/g' test

global


sed  's/t/T/g' test > test1

sed -i  's/t/T/g' test

sed -i 's/T/t/g' test

파일 이름을 그대로 두고 내용을 변화시킴.




sed 's/t/ooo/g' test

sed 's/^t/ooo/g' test

sed 's/^th/ooo/g' test

sed 's/t$/ooo/g' test

sed 's/e$/ooo/g' test

sed 's/^t/T/' test

sed 's/t$/T/' test



sed -i 's/t/T/g' test

sed 's/[0-9]/*/g'  test

sed 's/[a-z]/*/g' test 

sed 's/[A-Z]/*/g' test


sed 's/[a-z][A-Z]/*/g' test



sed 's/[A-z]/*/g' test


sed 's/[A-z0-9]/*/g' test


sed 's/[0-z]/*/g' test


sed 's/[A-Z]i/*/g' test



sed 's/[0-9][A-z]/*/g' test



sed 's/[0-9]//g' test
숫자 없애기

sed 's/[0-9]/$&/'  price_list

.                        any character

[ATCG]             A   T   C  G
[^ATCG]      not A   T   C   G
[a-z0-9]      any lowcase or number
[[:alpha:]]
[[:digit::]]
[[:alnum:]]
[[:space:]]



sed 's/10/(10)/g' test


sed 's/[0-9]/(&)/g' test

sed 's/[0-9][0-9]/(&)/g' test

sed 's/[0-9][0-9]*/(&)/g' test


sed 's/[0-9][0-9]/(&&)/g' test

sed -n '1,4p'

sed  -n ''
sed -n 'p'

sed 'p'

sed 'd'

sed 'd; p'

sed 'p; d'


sed 's/are/be/'
sed '2,3s/are/be/'


sed -n '2,3{s/are/be/; p}'




sed -n '/love/,/peace/p'  filename

sed -n '6,/^love/p'  filename


다중 편집

sed -n '1,3d'  -e 's/love/peace/'  filename

seq  6 | sed -e 1d -e 3d -e 5d

seq 6 | sed '1d;3d;5d'

seq 6 | sed '{1d;3d}'

seq 6 | sed '{1d;3d};5d'


sed '/The Alchemist/ a abcdedf'  filename
sed '/The/ a abcd' filename

sed '3 c abcd' filename


sed '3, 5 r junk.txt'  filename
sed '3 r junk.txt'  filename

sed  '/The/ r junk.txt'  filename


sed '3 e date' filename
sed '/The/ e date' filename

cat com.txt
date
cal
uname

sed 'e'  com.txt



sed command     vs     awk command

''                        '{print}'
's/T/u/'             '{gsub(/T/,"u");print}'
-n '/LA/p'           '/LA/'
-n '1~4p; 2~4p'   'NR%4==1 || NR%4==2'



----------------------------------------------------------------------------------------------------------------

sed.pdf

덧글

댓글 입력 영역

최근 포토로그