免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2497 | 回复: 7

[文本处理] 处理一个配置文件 [复制链接]

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2014-06-05 16:58 |显示全部楼层
本帖最后由 Buring__ 于 2014-06-05 17:17 编辑
  1.                 dataSource_game_1025{
  2.                         gameServer.code="1025"
  3.                         gameServer.name="28服"
  4.                         url='jdbc:mysql://xx.xx.xx.xx/war_s28'

  5.                 }
复制代码
问下 ,怎么将上面变成 :
  1.                 dataSource_game_1026{
  2.                         gameServer.code="1026"
  3.                         gameServer.name="29服"
  4.                         url='jdbc:mysql://xx.xx.xx.xx/war_s29'

  5.                 }
  6.                 dataSource_game_1027{
  7.                         gameServer.code="1027"
  8.                         gameServer.name="30服"
  9.                         url='jdbc:mysql://xx.xx.xx.xx/war_s30'
  10.                         
  11.                 }
  12.                         ....
  13.                         ....
  14.                         ....
  15.                                
  16.                                
复制代码
就是将那几个数字加1

文本格式不保留也没关系,

论坛徽章:
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
发表于 2014-06-05 17:07 |显示全部楼层
回复 1# Buring__

1. How many blocks do you need?

2. How to know the 3306 didn't increase?


BTW:
                        username = "abc1x"
                        password = "test2x"
   

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2014-06-05 17:15 |显示全部楼层
回复 2# jason680

我又修改了一下, 文本格式不保留也没关系, 那个3306端口默认的去掉了, userame和password 那两行也都是一样的,不处理先,
   

论坛徽章:
731
金牛座
日期: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
发表于 2014-06-05 17:28 |显示全部楼层
本帖最后由 Herowinter 于 2014-06-05 17:52 编辑

回复 1# Buring__
仅针对你这段文本可以这样,我的++规则仅针对某个数字
的前置字符是"  _或大小写字母,参考了以前海兄
一个帖子里的版本+1的代码。
  1. sed -r 's/^(.*["_a-zA-Z])([0-9]+)(.*)$/echo "\1$(( \2 + 1 ))\3"/e' i
  2. dataSource_game_1026{
  3.                         gameServer.code=1026
  4.                         gameServer.name=29服
  5.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s29'
  6.                         username = "xxxx"
  7.                         password = "xxxx"
  8.                 }
复制代码

论坛徽章:
731
金牛座
日期: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
发表于 2014-06-05 17:38 |显示全部楼层
本帖最后由 Herowinter 于 2014-06-05 17:56 编辑

数字前后的双引号丢失了。。。
原因是\1 \3中含有双引号,有谁知道
该怎么改正确吗?

论坛徽章:
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
发表于 2014-06-05 18:07 |显示全部楼层
回复 3# Buring__

try this easy way ...

$ perl -lape '{s/(\d+)/$1+1/ge}' FILE
Source_game_1026{
                            gameServer.code="1026"
                            gameServer.name="29服"
                            url='jdbc:mysql://xx.xx.xx.xx/war_s29'

                    }

$ cat FILE
Source_game_1025{
                            gameServer.code="1025"
                            gameServer.name="28服"
                            url='jdbc:mysql://xx.xx.xx.xx/war_s28'

                    }


   

论坛徽章:
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
发表于 2014-06-05 18:53 |显示全部楼层
  1. [root@localhost ~]# cat t.txt
  2.                 dataSource_game_1025{
  3.                         gameServer.code="1025"
  4.                         gameServer.name="28服"
  5.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s28'
  6.                         username = "xxxx"
  7.                         password = "xxxx"
  8.                 }
  9. [root@localhost ~]# python t.py
  10.                 dataSource_game_1026{
  11.                         gameServer.code="1026"
  12.                         gameServer.name="29服"
  13.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s29'
  14.                         username = "xxxx"
  15.                         password = "xxxx"
  16.                 }

  17.                 dataSource_game_1027{
  18.                         gameServer.code="1027"
  19.                         gameServer.name="30服"
  20.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s30'
  21.                         username = "xxxx"
  22.                         password = "xxxx"
  23.                 }

  24.                 dataSource_game_1028{
  25.                         gameServer.code="1028"
  26.                         gameServer.name="31服"
  27.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s31'
  28.                         username = "xxxx"
  29.                         password = "xxxx"
  30.                 }

  31.                 dataSource_game_1029{
  32.                         gameServer.code="1029"
  33.                         gameServer.name="32服"
  34.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s32'
  35.                         username = "xxxx"
  36.                         password = "xxxx"
  37.                 }

  38.                 dataSource_game_1030{
  39.                         gameServer.code="1030"
  40.                         gameServer.name="33服"
  41.                         url='jdbc:mysql://xx.xx.xx.xx:3306/war_s33'
  42.                         username = "xxxx"
  43.                         password = "xxxx"
  44.                 }

  45. [root@localhost ~]# cat t.py
  46. #!/usr/bin/python
  47. # coding: utf-8
  48. max = 5 # 累加多少次
  49. import re
  50. with open('t.txt','r') as f:
  51.     fd = f.readlines()
  52.     for n in range(1,max+1):
  53.         for r in fd:
  54.             data = re.findall(r'\d+',r)
  55.             if data:
  56.                 mdata = r.split('/')
  57.                 if len(mdata) != 0 :
  58.                     mdata[-1] = re.sub(r'\d+',str(int(data[-1])+n),mdata[-1])
  59.                     print '/'.join(mdata).strip('\n')
  60.                 else:
  61.                     print re.sub(r'\d+',str(int(data[-1])+n),r).strip('\n')
  62.             else:
  63.                 print r.strip('\n')
  64.         print ''
  65. [root@localhost ~]#
复制代码
好多游戏运维啊,我勒个去... 啥公司啊?  

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
发表于 2014-06-06 09:54 |显示全部楼层
回复 7# reyleon

谢谢六哥 ,费心了。一家小公司,还没做出来像样的东西呢


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP