awk实例

190阅读 0评论2015-10-16 sync_1521
分类:LINUX

源文本

  1.        name="old">


  2.      
复制代码
替换成


复制代码
或者替换成

网上各种华丽的解法:
test@sever:/tmp> sed -r ':1;N;$!b1;s/\s+/ /g' 1



test@sever:/tmp> xargs <1



test@sever:/tmp> echo $(cat 1)



test@sever:/tmp> awk 'BEGIN{RS="[<>]"}{$1=$1}1' 1


temp name="old"


text path="/www/ftp"/


/temp


test@sever:/tmp> sed -r -e '/^$|^[ \t]+$/d' -e 's/^[ \t]+//' 1 | sed -r '/<.*>/!N;s/\s+/ /g'





test@sever:/tmp> sed -r ':1;/<.*>/b2;N;b1;:2;s/[ \n]+/ /g;' 1


 


我的解法:
test@sever:/tmp> awk '!/>$/{while(a!~/>$/){getline a;a=$0" "a};gsub("[ \t]+"," ",a);print a;a="";next}{gsub(/[ \t]+/," ",$0)}1' 1


 
 
test@sever:/tmp> awk '{a=a" "$0}END{sub("^ +","",a);gsub("[ \t]+"," ",a);print a}' 1



上一篇:Linux 下用 smartd 监测硬盘状况
下一篇:awk之RT内置变量