免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zhngxx
打印 上一主题 下一主题

awk 下如何打印当前匹配行的上一行? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-08-17 12:11 |只看该作者

awk 下如何打印当前匹配行的上一行?


  1. cat file|grep -B1 ^[A].*|grep -v ^[A].*|grep -v ^-
  2. 123343242
  3. 343243243
  4. 456787654
复制代码

论坛徽章:
0
12 [报告]
发表于 2004-08-17 13:45 |只看该作者

awk 下如何打印当前匹配行的上一行?

在FreeBSD 4.8下测试
awk '/A*/{print a}{a=$0}' filename输出:

  1. 123343242
  2. AAAAAAAA
  3. ADSDFSDSDFFGDF
  4. 343243243
  5. AAAAAAAA
  6. WRWQERETEWREWQ
  7. SDFS3TETSAF
  8. 456787654
  9. AAAAAAAA
  10. WRWQERETEWREWQ
复制代码


awk '/A+/{print a}{a=$0}' filename
  1. 123343242
  2. AAAAAAAA
  3. 343243243
  4. WRWQERETEWREWQ
  5. 456787654
  6. WRWQERETEWREWQ
复制代码


awk '/AAAAAAAA/{print a}{a=$0}' filename
  1. 123343242
  2. 343243243
  3. 456787654
复制代码

论坛徽章:
0
13 [报告]
发表于 2004-08-25 11:02 |只看该作者

awk 下如何打印当前匹配行的上一行?

nawk '{ if($0 !~/AAAAAAAA/)
                   record = $0
             else
                   printf("%s\n",record)
}' filename

论坛徽章:
0
14 [报告]
发表于 2004-08-25 11:30 |只看该作者

awk 下如何打印当前匹配行的上一行?

原帖由 "zhngxx" 发表:
来不及自己看贴了,看看谁帮忙啊?

比如记录如下:

123343242
AAAAAAAA
343243243
BBBBBBBB

在匹配到AAAAAAAA后,想PRINT 出 上一行,也就是 "123343242"

怎么写AWK啊?

  1. 变成
  2. 123343242  AAAAAAAA
  3. 343243243  BBBBBBBB
  4. 这样的文本就能处理了

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP