Chinaunix

标题: 如何用shell取得字符串中的数字? [打印本页]

作者: wooin    时间: 2009-04-03 09:37
标题: 如何用shell取得字符串中的数字?
12345R
234M
7903DR

如何将其后面的字母去掉,输出:
12345
234
7903

谢谢啦。。。
作者: 我是DBA    时间: 2009-04-03 09:41
grep -Eo '[0-9]+'
作者: ruifox    时间: 2009-04-03 09:44
sed 's/[^0-9]//g' file
作者: 我是DBA    时间: 2009-04-03 09:51
[test@ ~ ] $ awk -F'[^0-9]+' 'NF=NF' 1         
12345
234
7903
作者: justlooks    时间: 2009-04-03 09:55
grep -oP '\d+'
作者: HH106    时间: 2009-04-03 09:56
awk '{print $1+0}'
作者: liaosnet    时间: 2009-04-03 10:10
原帖由 HH106 于 2009-4-3 09:56 发表
awk '{print $1+0}'


注意,这个仅适用于数字开头的,到不是数字就结束了...
作者: 飞鸿无痕    时间: 2009-04-03 10:12
标题: 回复 #1 wooin 的帖子
tr -cs '[0-9]' '\n' file

[root@server2 shell]# cat a
12345R
234M
7903DR
[root@server2 shell]# tr -cs '[0-9]' '\n' <a
12345
234
7903
作者: wooin    时间: 2009-04-03 22:56
这么多方法呀?哪个最好呀?
作者: wtuter    时间: 2009-04-03 23:16
标题: 回复 #8 飞鸿无痕 的帖子
[WWW]tr -cd '[0-9\n]'  <b

12345
234
7903
作者: angeljyt    时间: 2009-04-04 00:15
sed -e "s/[^0-9]*$//g" test.txt




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2