免费注册 查看新帖 |

Chinaunix

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

shell编程中如何修改文件的一部分而有不改变其他部分? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-04 19:23 |只看该作者 |倒序浏览
我要修改一个/proc下的文件,格式就像下面的:
11111  22222  3333  4444

文件中就这么一行,我只想改第四列的值,而又不动其他列的值

有什么解决方法吗?帮帮我,我是小菜!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-01-04 19:33 |只看该作者

shell编程中如何修改文件的一部分而有不改变其他部分?


  1. awk '{$4="xxxxx";print}' file
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-01-04 19:41 |只看该作者

shell编程中如何修改文件的一部分而有不改变其他部分?


  1. vim file
  2. / /e+1
  3. nncwstring^[
  4. :wq
复制代码

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-01-04 19:47 |只看该作者

shell编程中如何修改文件的一部分而有不改变其他部分?


  1. echo $(cut -f1-3 -d' ' file) newstring >file
复制代码

P.S:如果文件就一行的话

论坛徽章:
0
5 [报告]
发表于 2005-01-05 09:10 |只看该作者

shell编程中如何修改文件的一部分而有不改变其他部分?

多多感谢各位大虾的帮助,小弟叩首以谢了!!!

为什么我使用下列代码
awk '{$4="xxxxx";print}' file

打印出来信息的确是第四行变了,但是原来的文件中并没有变呢??



后来我在上面的代码后加上了“>> file”,输出的就追加到文件尾部了
但是我换了“> file”后文件截为0后什么都没有添加进去

论坛徽章:
0
6 [报告]
发表于 2005-01-05 09:20 |只看该作者

shell编程中如何修改文件的一部分而有不改变其他部分?

  1. sed 's/ [^ ]* *$/ XXXX/' filename
  2. 11111 22222 3333 XXXX
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP