Shell 텍스트 처리 삼 총사 sed 사용
문법:
stdout | sed [option] "pattern command"
sed [option] "pattern command" file1
상용 옵션(option)
# -n ,
# p
➜ sed '/hello/p' helloWorld.sh
#!/bin/bash
HELLO bash
echo "hello world"
echo "hello world"
➜ sed -n '/hello/p' helloWorld.sh
echo "hello world"
# -e
➜ sed -n -e '/hello/p' -e '/HELLO/p' helloWorld.sh
HELLO bash
echo "hello world"
# -f ,
➜ cat edit.sed
/hello/p
➜ sed -n -f edit.sed hello.md
# -E ( -r)
➜ sed -n -E '/hello|HELLO/p' helloWorld.sh
HELLO bash
echo "hello world"
# -i
# s
# helloWorld.sh hello hello123
sed -n -i 's/hello/hello123/g' helloWorld.sh
일치 모드(pattern)일치 모드
설명 하 다.
10command
열 째 줄
10,20command
10 번 부터 20 번 째 줄.
10,+5command
10 번 부터 16 번 째 줄.
/pattern1/command
pattern 1 에 대응 하 는 줄 일치
/pattern1/,/pattern2/command
pattern 1 에 대응 하 는 줄 부터 pattern 2 줄 까지
10,/pattern1/command
10 줄 부터 pattern 1 줄 까지
/pattern1/,10command
pattern 1 에 대응 하 는 줄 부터 10 번 째 줄 까지
상용 편집 명령(command)
조회 하 다.
# sys 、 /sbin/nologin
➜ sed -i '/^sys.*\/sbin\/nologin$/d' passwd_bak
# 、
sed -i '/[:blank:]*#/d;/^$/d' passwd_bak
# vagrant ,
➜ sed -i '/^vagrant/a ' passwd_bak
# root root123
➜ sed -i 's/root/root123/ig' passwd_bak
# sys 、 nologin , _666
# &
➜ sed -i 's/^sys.*nologin$/&_666/g' passwd_bak
# sys 、 nologin_666
# SYS_ 、 _777 , \1
➜ sed -i 's/^sys\(.*\)nologin_666$/SYS_\1_777/g' passwd_bak
# 1 ~ 10 sys SYS
➜ sed -i '1,10s/sys/SYS/ig' passwd_bak
# my.cnf mysqld
# sed [mysqld] [.*]
# grep -v 、 [.*]
# wc -l
sed -n "/^\[mysqld\]$/,/^\[.*\]$/p" /etc/my.cnf | grep -Ev '^$|[#;]|^\[.*' | wc -l
메모:일치 하 는 모드 에 변수 가 존재 한다 면 sed-i"s/$OLD 와 같은 작은 따옴표 를 사용 하 는 것 을 권장 합 니 다.STR/$NEW_STR/g" passwd_bak여기 서 Shell 텍스트 처리 삼 총사 의 sed 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Shell 텍스트 처리 sed 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell alias 명령에 별칭을 설정하는 방법명령에 별명을 설정하면 명령의'작은 이름'으로 삼을 수 있지만, 이렇게 하는 것이 무슨 의미가 있습니까? 이때 별명이 작용할 수 있다.vim 명령의 별명을vi라고 정의하면 이후에 실행된vi 명령은 실제로vim 명령을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.