2013-11-03 2 views
1

이 같은 뭔가가 옵션 파일이 있습니다여러 구분과 AWK를 사용하여 첫 번째 열로 두 번째 열을 교체

<option value=Malaysia>xxxxxxxx</option> 
<option value=Malawi>yyyyyyyy</option> 
<option value=Malta>zzzzzzzz</option> 
<option value=Madagascar>hhhhhhhh</option> 

내가 사용하려고 AWK 사용 :

awk -F ">" '{$2=$1;}1' OFS=\> test.html 

을하지만, 그렇지 않습니다 > 분리 기호가 전체 부분을 고려하기 때문에 xxxxxxxx를 말레이시아로 바꿉니다> 첫 번째 변수가

이 시나리오에서 여러 구분 기호를 조작하여 $ 2를 대체 할 수있는 방법 iw

감사

위의 국가 이름입니다 $ 1과 XXXXXXXX, YYYYYYYY, zzzzzzzz, HHHHHHHH 수를 개미 당신이 AWK 사용할 수 있습니다

답변

3

:

awk -F "[<=>]" '{$4=$3; printf "<%s=%s>%s<%s>\n", $2, $3, $4, $5}' test.html 

<option value=Malaysia>Malaysia</option> 
<option value=Malawi>Malawi</option> 
<option value=Malta>Malta</option> 
<option value=Madagascar>Madagascar</option> 
0

사용하는 gnu awk 버전 gensub

awk -F"=|>" '{print gensub("(>).*(<)","\\1"$2"\\2","g")}' test.html 
<option value=Malaysia>Malaysia</option> 
<option value=Malawi>Malawi</option> 
<option value=Malta>Malta</option> 
<option value=Madagascar>Madagascar</option> 
관련 문제