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

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-05-09 10:16:44

  帅哥
圣骑士



CU编号: 234636
注册:2005-3-7
最后登录: 2009-05-08
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 21:50 
有个文件格式如下:
[11] [22] [33] [44  4] [5 55] [666]
......
我想取出中括号里的内容:
11 22 33 44 4 5 55 666
我用awk写了一个,觉得不好,我想找一个更好的方法,请问还能怎么处理呢?
还有awk能怎么取出[]中间的内容呢?谢谢!



您对本贴的看法:
| |
  帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-05-08
帖子:
精华:0







来自:长春
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 21:57 
sed 's/[][]//g' urfile



您对本贴的看法:

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
| |
(暗夜星空)
精灵使
休息休息



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







来自:广州<-->杭州
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 22:07 
awk -F'[^0-9]' 'NF=NF'



您对本贴的看法:

__________________________________

有时候回答问题是信口开河......
因此不保证所有回复问题的答案的准确性.
如果正好是对的,那是碰到了死耗子..呵呵.
想着休息,不想做事!
| |

天使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 22:08 
tr -d '[][]'


您对本贴的看法:

__________________________________

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



CU编号: 234636
注册:2005-3-7
最后登录: 2009-05-08
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 22:14 


QUOTE:
原帖由 我是DBA 于 2009-5-7 22:07 发表
awk -F'[^0-9]' 'NF=NF'

我的例子没写全,中括号之间不只是数字,其它字母,符号都可能会出现。还有就是处理后的文件还要求是六列
11 22 33 44 4 5 55 666

[ 本帖最后由 linux68 于 2009-5-8 11:01 编辑 ]



您对本贴的看法:
| |
(狼烟)
精灵王
披着狼皮的羊



CU编号: 547805
注册:2007-4-5
最后登录: 2009-05-09
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 22:24 


CODE:
awk -F"[][]" -v OFS="" 'NF=NF' URFILE




您对本贴的看法:
| |
(狼烟)
精灵王
披着狼皮的羊



CU编号: 547805
注册:2007-4-5
最后登录: 2009-05-09
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-7 22:40 
取内容,上面代码下标为偶数的域。



您对本贴的看法:
| |

精灵王
精灵王?



CU编号: 199500
注册:2004-11-15
最后登录: 2009-05-08
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-8 10:39 
sed -r 's/(\[|\])//g'



您对本贴的看法:

__________________________________

正则 shell买什么书好?
来这里混混,2个月速成班,还不收费!

| |

侠客




CU编号: 791268
注册:2008-12-5
最后登录: 2009-05-08
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-8 10:54 
sed -e "s/\[//g" -e "s/\]//g"
這樣也可以。:mrgreen:



您对本贴的看法:
| |

侠客




CU编号: 791268
注册:2008-12-5
最后登录: 2009-05-08
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-8 11:11 
sed -e "s/\[//g" -e "s/\]//g"
這樣也可以。:mrgreen:



侠客



CU编号: 638092
注册:2007-11-6
最后登录: 2009-05-08
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-5-8 16:47 
回复 #4 ywlscpl 的帖子



CODE:
tr -d '[]' < file

tr应该是只要字符包含在里面就可以了,不用管位置的



您对本贴的看法:

__________________________________

多看/etc
| |

天使



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







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-8 17:04 
回复 #11 flyaway57 的帖子

多谢指正,我理解成正则了
好像tr中的这个参数类似于通配符

[root@Mylinux ~]# echo "[11] [22] [33] [44  4] [5 55] [666]"|tr -d "0-9"   
[] [] [] [  ] [ ] []


阅读(737) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~