[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 CrLf 于 2014-6-11 01:48 编辑

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

TOP

返回列表