Bash 使用带多个分离器的awk将第二列替换为第一列
我有这样的选项文件:Bash 使用带多个分离器的awk将第二列替换为第一列,bash,awk,Bash,Awk,我有这样的选项文件: <option value=Malaysia>xxxxxxxx</option> <option value=Malawi>yyyyyyyy</option> <option value=Malta>zzzzzzzz</option> <option value=Madagascar>hhhhhhhh</option> 但它并没有用马来西亚取代xxxxxxxx,因为>分隔符考虑
<option value=Malaysia>xxxxxxxx</option>
<option value=Malawi>yyyyyyyy</option>
<option value=Malta>zzzzzzzz</option>
<option value=Madagascar>hhhhhhhh</option>
但它并没有用马来西亚取代xxxxxxxx,因为>分隔符考虑的是>之前的整个部分是第一个变量
如何在此场景中操作多个分隔符,以便我可以将$2(我希望它是xxxxxxxx、yyyyyyyy、zzzzzz、hhhhhhhhhhhh)替换为$1(上面的国家名称)
谢谢您可以使用此awk:
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>
awk-F“[]”{$4=$3;printf“%s\n”、$2、$3、$4、$5}test.html
马来西亚
马拉维
马耳他
马达加斯加
Agnu 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>
awk-F“=|>”{print 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>