免费注册 查看新帖 |

Chinaunix

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

如何删除文件中件几个域? cut? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-21 22:42 |只看该作者 |倒序浏览
题目: 如要求输出域1~80, 85~90,  也就是说删除掉中间4个域,

问如何实现?

由于文件特别的大,故最好要求是一个命令搞定...

论坛徽章:
0
2 [报告]
发表于 2009-06-21 23:06 |只看该作者
cut -d '分隔符' -f 1-80 -f 85-90

论坛徽章:
0
3 [报告]
发表于 2009-06-21 23:26 |只看该作者
原帖由 lululau 于 2009-6-21 23:06 发表
cut -d '分隔符' -f 1-80 -f 85-90



不可以用2个 -f 噢, 不知道可不可以用awk来实现这样的功能...

论坛徽章:
0
4 [报告]
发表于 2009-06-21 23:29 |只看该作者
有点复杂
awk '{for(i=1;i<=NF;i++)if(i<81||(i>84&&i<91))printf("%s ", $i);NF;printf("\n") }'

[ 本帖最后由 haimming 于 2009-6-21 23:32 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-06-21 23:30 |只看该作者
你什么系统?


  1. ~/Downloads/oma-music $ echo 'a b c d e f g' | cut -d ' ' -f 2-3 -f 5-6
  2. b c e f

复制代码

论坛徽章:
0
6 [报告]
发表于 2009-06-21 23:31 |只看该作者

回复 #3 stsrichard 的帖子

cut -f1-80,85-90

论坛徽章:
0
7 [报告]
发表于 2009-06-21 23:31 |只看该作者
cut -d' ' -f1-80,85-90 file
行么

论坛徽章:
0
8 [报告]
发表于 2009-06-21 23:36 |只看该作者

回复 #5 lululau 的帖子

你的cut是什么版的?
[rockfall@A]$echo 'a b c d e f g' | cut -d ' ' -f 2-3 -f 5-6
cut: only one type of list may be specified
Try `cut --help' for more information.
bash: echo: write error: Broken pipe
[rockfall@A]$echo -e "1 2 3 4 5 6 7 8\na b c d e f g h"|cut -d' ' -f2-3,5-6
2 3 5 6
b c e f
[rockfall@A]$

论坛徽章:
0
9 [报告]
发表于 2009-06-21 23:38 |只看该作者

论坛徽章:
0
10 [报告]
发表于 2009-06-21 23:58 |只看该作者
awk还有个简单点的
awk '{$81=$82=$83=$84="\b";print $0}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP