免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3655 | 回复: 8
打印 上一主题 下一主题

[文本处理] sed 小问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-15 14:35 |只看该作者 |倒序浏览
本帖最后由 wang390750 于 2013-11-15 14:37 编辑
  1. [root@e tmp]# cat 1
  2. ad'\fas;dfa56s5f2d2478w666-=
  3. ww43ertwer``73,5s[feggfgs239
  4. 8y\[\h29$%^&5t4t45uhi1u54yh2
  5. jh$j235bk(^^2b3123jh4b123b54
  6. kj4kjh1#234b)*k1234
复制代码
我自己写的命令是:sed 's/[^0-9]//g' 1
达到的效果是排除字母和符号
  1. [root@e tmp]# sed 's/[^0-9]//g' 1
  2. 56522478666
  3. 43735239
  4. 82954451542
  5. 23523123412354
  6. 412341234
复制代码
不用[^]该怎么写呢

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2013-11-15 14:48 |只看该作者
  1. sed 's/[[:alpha:][:punct:]]//g' urfile
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-11-15 14:58 |只看该作者
回复 2# Shell_HAT


    恩,谢谢了

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
4 [报告]
发表于 2013-11-15 20:19 |只看该作者
  1. awk '{gsub("[^0-9]+","",$0)}1' 1.txt
复制代码

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
5 [报告]
发表于 2013-11-15 21:05 |只看该作者
回复 4# reb00t


    $0 可以省略,默认就是$0

论坛徽章:
0
6 [报告]
发表于 2013-11-17 22:00 |只看该作者
来个脱了👖防弊滴
awk 'BEGIN{FS="";idx=1;num=""}{ while( idx < NF){if( $idx ~ /[0-9]/){ num=num$idx;} idx++}}END{ print num}' ufile

论坛徽章:
7
亥猪
日期:2013-10-10 17:00:29辰龙
日期:2013-10-12 16:23:19卯兔
日期:2013-11-18 17:01:27金牛座
日期:2014-09-09 10:17:052015七夕节徽章
日期:2015-08-21 11:06:172015亚冠之柏太阳神
日期:2015-09-25 13:56:42数据库技术版块每日发帖之星
日期:2016-08-06 06:20:00
7 [报告]
发表于 2013-11-18 17:32 |只看该作者
干这tr最合适不过了。
  1. tr -c '0-9 \n' '-' < file | tr -d '-'
复制代码
  1. tr -d '[:alpha:][:punct:]' < file
复制代码

论坛徽章:
0
8 [报告]
发表于 2013-11-19 02:45 |只看该作者
不错  我觉得还是tr干这个比较合适   呵呵:wink::wink::wink:

论坛徽章:
0
9 [报告]
发表于 2013-11-20 11:15 |只看该作者
tr 简洁啊。如同七楼。  cat 1 | tr -d -c '0-9\n'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP