2017-12-14 701 views
0

예 :bash에서 파일의 문자열과 일치하는 줄에서 IP 주소를 추출하는 방법은 무엇입니까?

나는 파일 이름 example.txt이 있고 그 안에이 텍스트 :

내가 문자열 이름 "ASDFG"를 포함하는 행에서 IP 주소를 추출 할
some text here INFO 200  cv 58687 http://saomesitehoere.com live connect ASDFG 61.215.80.6 07:16 

some text here INFO 100  fv 582702687 http://saomesitehoere.org live connect 31.15.80.1 07:16:33 

some text here INFO 00  ov 587 http://saomesitehoere.uk live connect ASGGGGFG 91.211.80.6 09:16 

some text here INFO 800 kcv 277 http://saomesitehoere.za live connect AFG 71.215.81.5 09:14 

의미 61.215.80.6

누구든지 도움을받을 수 있습니까?

+0

구현하려는 프로그래밍 언어 나 스크립트는 무엇입니까? – kakurala

+0

@kakurala 그는 Bash를 언급했다. –

+0

이전에 태그를 보지 못했다. ( – kakurala

답변

3
$ grep -oP 'ASDFG \K\S*' < file 
61.215.80.6 
+1

PCRE를 사용하면'[^]'대신'\ S'를 사용할 수 있습니다 –

1

당신은 AWK를 시도 할 수 있습니다 :

awk '/\<ASDFG\>/{print $(NF-1)}' file 
+0

참고 : nawk 또는 gawk가 필요합니다 : mawk는'\ <...\>' –

0

IP 주소는 세 번 1 ~ 3 자리 숫자 뒤에 점 다음에 1 ~ 3 자리 같다. 그러면 다음과 같은 줄에 IP 주소가 생깁니다 :

$ grep ASDFG logfile | grep -o '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\+' 
61.215.80.6