셸 sed 또는 awk 단락 내용 절단 방법2019_lcf
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 의 사용 문 서 를 볼 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.