本帖最后由 CrLf 于 2014-6-11 01:48 编辑
这个问题还是用 7 楼 sed 比较好,如果要用 gawk 的话没那么直接,不过也是挺好玩的~
可以这样:- gawk "BEGIN{RS=\"id=tos\"}/./{print RS $0}" a.txt
复制代码 或- gawk "BEGIN{RS=\"id=tos\"}$1~sub(/^/,RS)" a.txt
复制代码 也可以这样:- gawk -F"id=tos" "{for(i=2;i<=NF;i++)print FS $i RS}" a.txt
复制代码 用四楼的正则就是这样:- gawk "gsub(/id=tos/,\"\n^&\")" a.txt
复制代码 或- gawk "$0=gensub(/\s(id=tos)/,\"\n\\1\",\"g\")" a.txt
复制代码 也可用域赋值技巧:- gawk -F"id=tos" "{OFS=RS FS;$1=$1;print}" a.txt
复制代码 简写:- gawk -F"id=tos" "OFS=RS FS ($1=$1)" a.txt
复制代码
|