Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2079289
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-04-13 18:04:05

cat a.lst

xxxx   xxxx_1234_5678_xxxx.log  xxxx
xxxx   xxxx_2234_xxxx.log          xxxx
xxxx   3234_xxx_xxx.log             xxxx
xxxx   xxxx_xxxx_4234.log          xxxx


我想将a文件中每一行$2里的数字提出来作为首列,请问大家该如何做到
只取两个_之间只有数字的情况

以下是希望的结果
cat result.lst

1234  xxxx   xxxx_1234_5678_xxxx.log xxxx
5678  xxxx   xxxx_1234_5678_xxxx.log xxxx
2234  xxxx   xxxx_2234_xxxx.log        xxxx
3234  xxxx   3234_xxx_xxx.log           xxxx
4234  xxxx   xxxx_xxxx_4234.log        xxxx

谢谢大家哈

[ 本帖最后由 papokaka 于 2009-4-13 15:40 编辑 ]



您对本贴的看法:
| |
  帅哥
骑士



CU编号: 713233
注册:2008-6-2
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 15:53 


CODE:
awk '{split($2,array,"_");for(i in array){if(array[i]~/[0-9]/){print array[i],$0}}}'  urfile




您对本贴的看法:

__________________________________


| |

侠客




CU编号: 771611
注册:2008-10-11
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 15:59 
回复 #2 aboy11 的帖子

awk '{split($2,array,"[_.]");for(i in array){if(array~/[0-9]/){print array,$0}}}'  urfile
似乎更好点



您对本贴的看法:
| |
  帅哥
骑士



CU编号: 713233
注册:2008-6-2
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 16:03 


QUOTE:
原帖由 youshuang 于 2009-4-13 15:59 发表
awk '{split($2,array,"[_.]");for(i in array){if(array~/[0-9]/){print array,$0}}}'  urfile
似乎更好点

恩,多谢指正!



您对本贴的看法:

__________________________________


| |

新手




CU编号: 1342993
注册:2009-4-9
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 16:09 
回复 #3 youshuang 的帖子

似乎有错误呢,array的用法麻烦讲解一下

awk '{split($2,array," [_.] ");for(i in array){if(array~/[0-9]/){print array,$0}}}' a.txt

awk: cmd. line:1: (FILENAME=a.txt FNR=1) fatal: attempt to use array `array' in a scalar context

[ 本帖最后由 papokaka 于 2009-4-13 16:10 编辑 ]



您对本贴的看法:
| |

天使



CU编号: 347943
注册:2005-12-11
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 16:16 
[root@Mylinux tmp]# awk '{print gensub(/[^0-9]*([0-9]+).*/,"\\1",1,$2),$0}' file
1234 xxxx   xxxx_1234_5678_xxxx.log  xxxx
2234 xxxx   xxxx_2234_xxxx.log          xxxx
3234 xxxx   3234_xxx_xxx.log             xxxx
4234 xxxx   xxxx_xxxx_4234.log          xxxx



您对本贴的看法:

__________________________________

shell新手&&awk新手
我的awk学习笔记
http://blog.chinaunix.net/u3/91453/showart_1798635.html
| |
  帅哥
精灵




CU编号: 690903
注册:2008-4-13
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-4-13 16:17 
回复 #5 papokaka 的帖子

[root@Greendays lianshou]# awk '{split($2,array,"[_.]");for(i in array){if(array~/[0-9]/){print array,$0}}}' ac
1234 xxxx   xxxx_1234_5678_xxxx.log  xxxx
5678 xxxx   xxxx_1234_5678_xxxx.log  xxxx
2234 xxxx   xxxx_2234_xxxx.log          xxxx
3234 xxxx   3234_xxx_xxx.log             xxxx
4234 xxxx   xxxx_xxxx_4234.log          xxxx



您对本贴的看法:
| |

新手




CU编号: 1342993
注册:2009-4-9
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 16:42 
回复 #6 ywlscpl 的帖子

$cat a.txt
asd  asd12_1234_xxx.log
asd  xxxx_xxx_xxx.log
asd  xxxx_xxx_2234.log
asd  xxxx_xxx_xxx.log
asdas xxxx_xxx_xxx.log
asd xxxx_xxx_xxx.log

$ awk '{print gensub(/[^0-9]*([0-9]+).*/,"\\1",1,$2),$0}' a.txt
12 asd  asd12_1234_xxx.log
xxxx_xxx_xxx.log asd  xxxx_xxx_xxx.log
2234 asd  xxxx_xxx_2234.log
xxxx_xxx_xxx.log asd  xxxx_xxx_xxx.log
xxxx_xxx_xxx.log asdas xxxx_xxx_xxx.log
xxxx_xxx_xxx.log asd xxxx_xxx_xxx.log
-----------------
好奇怪,是我的awk版本和你们的不符吗....
我用7楼的法子也是带了参数就会出现错误
$ awk '{split($2,array,"[_.]");for(i in array){if(array~/[0-9]/){print array,$0}}}' a.txt
awk: cmd. line:1: (FILENAME=a.txt FNR=1) fatal: attempt to use array `array' in a scalar context



您对本贴的看法:
| |
(我在学习,我要进步)
精灵使
打破水锅问到底。




CU编号: 713644
注册:2008-6-3
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 16:44 
回复 #8 papokaka 的帖子

有斜体文字说明,他们有用i变量数组,并且被隐藏了。



您对本贴的看法:

__________________________________

C 初学,请多多指教。

| |

侠客




CU编号: 771611
注册:2008-10-11
最后登录: 2009-04-13
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-4-13 16:45 
回复 #5 papokaka 的帖子

晕死,我拷贝的,居然也拷贝错了,array要改成array,你看前面那个人的



您对本贴的看法:
阅读(1206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~