2017-04-04 19 views
0

스크립트는 텍스트 파일에서 행을 읽습니다. 선은 이렇게 보입니다. Bash의 문자열에서 문자열 추출

227 A S comment=comment string dst-address=9.9.9.9/29 gateway=192.168.199.2 gateway-status=192.168.199.2 reachable via LACP1=1 scope=30 target-scope=10 

는 변수 $ 경로

그때 그 변수 $subnet9.9.9.9/29을 할당해야

할당됩니다. awk을 사용할 수 없으므로 dst-address의 열 위치가 줄마다 다릅니다.

요약하면 "dst-address="에 대한 각 줄을 검색 한 다음 변수 $ 서브넷에 '='다음에 문자열을 할당해야합니다.

내 이상적인 솔루션

while read routes ; do 
    subnet=< code I need > 
done < /tmp/routingTable.txt 
+1

'그렙 -OP 'DST 주소 = \ K [ ^] * ''? – 123

+0

매우 유용한 명령입니다. 다른 용도로 사용하겠습니다. 고맙습니다! –

답변

0

루프없이 떠들썩한 용액

echo $route | sed -r "s/.*dst-address=([0-9./]+).*/\1/" 
+0

Paul 감사합니다. –

+2

이것은 어떻게 bash 솔루션입니까, sed를 사용하고 있습니까? – 123

0

Perl 용액이다

perl -n -e'/dst-address=(\S+)/ && print $1."\n"' your_file