免费注册 查看新帖 |

Chinaunix

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

[文本处理] awk/sed 在文件末尾添加数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-05 18:05 |只看该作者 |倒序浏览
1.大侠们,如何用awk/sed 在文件末尾添加数据?
2.如何用awk/sed在匹配到的字符串的下一行添加数据?目前我用awk '/^export JAVA_HOME/{print "export TESTGJS=D605C35198D2CA085E9C6FA7D2DF69F3;"}1'可以实现在export JAVA_HOME开头的上一行添加export TESTGJS=D605C35198D2CA085E9C6FA7D2DF69F3;但是怎么写才能在export JAVA_HOME的下一行添加数据呢。。。。

PS:我系统的sed不支持\a \i   

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-11-05 18:12 |只看该作者
回复 1# guojinshuai
  1. echo -e "export JAVA_HOME\nabcd"|sed 's/^export JAVA_HOME/&\nxxoo/'
  2. export JAVA_HOME
  3. xxoo
  4. abcd
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-11-05 18:34 |只看该作者
回复 2# Herowinter


    我的AIX系统不支持echo,而且系统的sed不支持\n,\\n,\\\n我都试了,都不好用。
   大侠们继续呀,我觉得我的系统awk支持的很好。。。。

论坛徽章:
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
4 [报告]
发表于 2014-11-05 18:41 |只看该作者
  1. awk '/^export JAVA_HOME/{print; print "export TESTGJS=D605C35198D2CA085E9C6FA7D2DF69F3;"}'
复制代码

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
5 [报告]
发表于 2014-11-05 18:43 |只看该作者
本帖最后由 Herowinter 于 2014-11-05 18:43 编辑

回复 3# guojinshuai


经测试, AIX这样可以.
  1. echo -e "export JAVA_HOME\nabcd"|sed 's/^export JAVA_HOME/&\
  2. > export TESTGJS=D605C35198D2CA085E9C6FA7D2DF69F3/'
  3. export JAVA_HOME
  4. export TESTGJS=D605C35198D2CA085E9C6FA7D2DF69F3
  5. abcd
复制代码
参考这个:
http://stackoverflow.com/questions/11157859/how-to-inject-a-line-feed-to-replace-a-delimiter

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
6 [报告]
发表于 2014-11-05 19:15 |只看该作者
本帖最后由 jason680 于 2014-11-06 00:59 编辑

回复 1# guojinshuai

照样画虎

file: FILE
key word: export JAVA_HOME

original data print first
new data that you want added it: export ...

added data after key word
$ awk '{print}/^export JAVA_HOME/{print "export ..."}' FILE

BTW, added data before key word. They are the same as below:
$ awk '/^export JAVA_HOME/{print "export ..."}{print $0}' FILE
$ awk '/^export JAVA_HOME/{print "export ..."}{print}' FILE
$ awk '/^export JAVA_HOME/{print "export ..."}1' FILE

   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
7 [报告]
发表于 2014-11-05 21:07 |只看该作者
又是UNIX,建议使用perl:
  1. perl -lpe 'END{print "export TESTGJS=D605C35198D2CA085E9C6FA7D2DF69F3;"}'
复制代码

论坛徽章:
769
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
8 [报告]
发表于 2014-11-05 21:43 |只看该作者
回复 7# yestreenstars

大神被标题骗了,楼主的题意是在某一行后面加。。。

论坛徽章:
0
9 [报告]
发表于 2014-11-06 00:38 |只看该作者
谢谢上面的几位大神,长见识了。

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
10 [报告]
发表于 2014-11-06 08:41 |只看该作者
回复 3# guojinshuai

这么搞就有回车符了

    sed 's/.../
'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP