2013-10-07 1 views
0

나는AWK 일치 패턴은

내가 난 단지 URL

의 목록을 얻으려면 출력으로 다음과 같은 구조

<package author=".." label=".." url=".."> 
<package author=".." label=".." url=".."> 
... 
<package author=".." label=".." url=".."> 

을 가진 파일이 AWK와 붙어

awk로 수행하는 방법.

가 나는
awk '/url="(.*)"/{print $0}' 123 

가 작동하지 않습니다 그러나

과 같이해야한다 생각했다.

감사합니다.

+0

가'내가 awk' 함께 붙어 있어요 - 당신이 붙어 방법을 당신이 우리를 말씀해 주시겠습니까? 지금까지 무엇을 시도 했습니까? – devnull

+0

'sub' 기능이 있습니까? –

답변

2

당신이 원하는 경우

awk '/url="(.*)"/{split($4, A, "\""); print A[2]}' 

sed를 사용하여 아마 훨씬 쉽습니다 : 정보를 추출하기 위해 , 당신은 예는, 이중 인용 부호를 따라 4 열을 분할 같은 뭔가를 할 수 이 모든 것을 포함 FR 표시됩니다

$ cat a 
<package author=".." label=".." url="thisis an url"> 
<package author=".." label=".." url="hello"> 
$ grep -Po '(?<=url=\")[^"]+' a 
thisis an url 
hello 

다음 url 값을 얻기 위해, grep은 당신의 친구가 될 수 있습니다 om url=" (제공되지 않음) 큰 따옴표 "이 발견 될 때까지 GNU의 AWK와

0

awk 명령은 주어진 패턴 (url=...)을 포함하는 줄만 필터링합니다. 모든 줄에는 문자열이 들어 있기 때문에 모든 줄을 줄 것입니다.

sed -e 's|^.*url="\([^"]*\)".*$|\1|g' 
+0

이것은'awk '/ url/{split ($ 4, A, "\" "); print A [2]}' – Jotne

2

:

awk '{print gensub(/.*url="([^"]+).*/,"\\1","")}' file 
0

또 다른 awk

cat file 
<package author=".." label=".." url="https://www.cisco.com"> 
<package author=".." label=".." url="http://www.google.com/search"> 

awk -F\" '/url/ {print $2}' RS=" " file 
https://www.cisco.com 
http://www.google.com/search 
0
perl -lne 'print $1 if(/url=\"([^\"]*)\"/)' your_file