셸 sed 또는 awk 단락 내용 절단 방법2019_lcf

4376 단어
때때로 우 리 는 내용 단락 을 캡 처 하 는 수요 가 있 는데, 다음은 간단하게 용법 을 소개 하고, 주로 실례 설명 을 위주 로 한다
1. awk 의 용법 설명 을 먼저 소개 합 니 다.
awk  "/시작 줄 문자열/,/끝 줄 문자열/"  문건   (이런 문법 sed 는 기본적으로 같다)
문자열 은 정규 일 수 있 습 니 다.
표기 법
awk  "/시작 줄 문자열/{태그 A = 0/1},/끝 줄 문자열/{태그 A = 0/1} 태그 A"  문건
태그 A 는 사용자 정의 변수 이름 에 해당 합 니 다. 이 용법 은 상대 적 으로 어렵 습 니 다. 깊이 알 고 싶 은 것 은 awk 관련 문 서 를 찾 아 보 세 요.
인 스 턴 스 파일 landing. log 내용 은 다음 과 같 습 니 다.
[root@localhost ~]# cat landing.log 
Sat Jan 26 14:09:25 CST 2019 ssh      :      :3 
 14:09:25 up 31 min,  3 users,  load average: 0.12, 0.10, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.80.1     22:03     ?     0.46s  0.46s -bash
root     pts/1    192.168.80.1     21:47     ?     0.41s  0.24s -bash
root     pts/2    192.168.80.1     21:47     ?     0.12s  0.00s tailf /var/log/landing.log


Sat Jan 26 14:09:43 CST 2019 ssh      :      :4 
 14:09:43 up 31 min,  4 users,  load average: 0.09, 0.09, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.80.1     22:03     ?     0.46s  0.46s -bash
root     pts/1    192.168.80.1     21:47     ?     0.43s  0.24s -bash
root     pts/2    192.168.80.1     21:47     ?     0.12s  0.00s tailf /var/log/landing.log
root     pts/3    192.168.80.1     14:09    0.00s  0.04s  0.04s -bash

aaaaaaaaaaaa

#-s
1111111111
222222
#-d
333333333

상용 실례 1: 시간 표시 로 내용 캡 처
awk "/14:09/{f=0}/14:09:25/{f=1}f"landing.log
[root@localhost ~]# awk "/14:09/{f=1}/14:09:25/{f=0}f" landing.log 
Sat Jan 26 14:09:43 CST 2019 ssh      :      :4 
 14:09:43 up 31 min,  4 users,  load average: 0.09, 0.09, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.80.1     22:03     ?     0.46s  0.46s -bash
root     pts/1    192.168.80.1     21:47     ?     0.43s  0.24s -bash
root     pts/2    192.168.80.1     21:47     ?     0.12s  0.00s tailf /var/log/landing.log
root     pts/3    192.168.80.1     14:09    0.00s  0.04s  0.04s -bash

[root@localhost ~]# awk "/14:09/{f=0}/14:09:25/{f=1}f" landing.log 
Sat Jan 26 14:09:25 CST 2019 ssh      :      :3 
 14:09:25 up 31 min,  3 users,  load average: 0.12, 0.10, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.80.1     22:03     ?     0.46s  0.46s -bash
root     pts/1    192.168.80.1     21:47     ?     0.41s  0.24s -bash
root     pts/2    192.168.80.1     21:47     ?     0.12s  0.00s tailf /var/log/landing.log


[root@localhost ~]#

내 가 캡 처 하고 싶 은 것 은 14: 09: 25 시간 대의 내용 을 볼 수 있다. 1. 앞 에 놓 으 면 잘못된 시간 대의 내용 을 캡 처 하고 뒤 에는 정확 하 다.
그래서 정식으로 사용 할 때 는 테스트 를 많이 해 야 한다.
확장: 14: 09 분 에서 초 까지 정확 하지 않 은 기록 용 기 를 캡 처 하려 면 awk "/14: 09/{f = 0}/14: 09/{f = 1} f"/var/log/landing. log 를 이렇게 쓸 수 있 습 니 다.
[root@localhost ~]# awk "/14:09/{f=0}/14:09/{f=1}f" /var/log/landing.log 
Sat Jan 26 14:09:25 CST 2019 ssh      :      :3 
 14:09:25 up 31 min,  3 users,  load average: 0.12, 0.10, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.80.1     22:03     ?     0.46s  0.46s -bash
root     pts/1    192.168.80.1     21:47     ?     0.41s  0.24s -bash
root     pts/2    192.168.80.1     21:47     ?     0.12s  0.00s tailf /var/log/landing.log


Sat Jan 26 14:09:43 CST 2019 ssh      :      :4 
 14:09:43 up 31 min,  4 users,  load average: 0.09, 0.09, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.80.1     22:03     ?     0.46s  0.46s -bash
root     pts/1    192.168.80.1     21:47     ?     0.43s  0.24s -bash
root     pts/2    192.168.80.1     21:47     ?     0.12s  0.00s tailf /var/log/landing.log
root     pts/3    192.168.80.1     14:09    0.00s  0.04s  0.04s -bash

상용 인 스 턴 스 2: 사용자 정의 태그 캡 처 내용 세그먼트
awk "/^#-s/,/^#-d/"landing.log
[root@localhost ~]# awk "/^#-s/,/^#-d/" landing.log 
#-s
1111111111
222222
#-d

 
2 、 sed 용법 
상용 인 스 턴 스 1: 사용자 정의 태그 캡 처 내용 세그먼트
sed -n "/^#-s/,/^#-d/p"landing.log 
[root@localhost ~]# sed -n "/^#-s/,/^#-d/p" landing.log 
#-s
1111111111
222222
#-d

더 많은 용법 은 sed, awk 의 사용 문 서 를 볼 수 있 습 니 다.

좋은 웹페이지 즐겨찾기