免费注册 查看新帖 |

Chinaunix

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

[文本处理] 文件字符串问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-07-12 14:56 |只看该作者 |倒序浏览
现有一文件 1.txt 其中内容为json 想替换其中内容
1.txt的内容为
{"ARCH":"armeabi-v7a_armeabi","BRAND":"SEMC","DEVICE":"LT22i","DISPLAY":"bc7b9baeda01","FINGERPRINT":"SEMC/LT22i_1261-9622/LT22i:4.0.4/6.1.B.0.544/371_zw:user/release-keys","HARDWARE":"st-ericsson","HOST":"ee030d31aeee","ID":"024d755160e2","MANUFACTURER":"Sony Ericsson","MODEL":"LT22i","PRODUCT":"LT22i_1261-9622","RELEASE":"4.0.4","SDK":"15","SERIAL":"3848e971","TAGS":"fc46b8a3ca10","TYPE":"5a450ddcd127","USER":"547b2649854c","connect_mode":"0","density":"2.0","densityDpi":"320","file_hook_package":"上_com.jiyoutang.dailyup","file_hook_package_open":"true","get":"M9615A-CEFWMAZM-2.0.128017","getAddress":"a9:82:97:e5:26:c1","getBSSID":"c6:f9:17:98:43:e7","getDeviceId":"352265057944855","getIpAddress":"192.168.1.37","getJiZhan":"9664_58283","getLine1Number":"18902133739","getMacAddress":"d9:fb:fc:98:cc:ce","getMetrics":"540x960","getNetworkCountryIso":"cn","getNetworkOperator":"","getNetworkOperatorName":"中国电信","getNetworkType":"4","getPhoneType":"2","getRadioVersion":"u8500-49020804-P2H_EC01\n","getSSID":"8f8207ac03","getSimCountryIso":"cn","getSimOperator":"46003","getSimOperatorName":"","getSimSerialNumber":"89860302062302260452","getSimState":"5","getString":"775243e496e0cd2d","getSubscriberId":"460030098662697","getSubtypeName":"CDMA","gps":"null","location_mode":"0","scaledDensity":"2.0","setCpuName":" riogrande","sign":"1965D6B8DD0113BB44092AEA31872152","xdpi":"345.0566","ydpi":"342.23157"}


想把其中 "8f8207ac03" 替换为 "\"8f8207ac03\""
不能以8f8207ac03为替换
因为8f8207ac03是不固定值
目前已知 "8f8207ac03" 替换为 "\"8f8207ac03\"" 的方法是 echo '"8f8207ac03"'|sed -r 's/"([^"]*)"/"\\"\1\\""/'
求整个文件替换

论坛徽章:
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
2 [报告]
发表于 2016-07-12 15:03 |只看该作者
想把其中 "8f8207ac03" 替换为 "\"8f8207ac03\""
不能以8f8207ac03为替换
因为8f8207ac03是不固定值

嘛意思啊???

看到这种json数据, 就应该用json的办法去搞

论坛徽章:
0
3 [报告]
发表于 2016-07-12 15:07 |只看该作者
本帖最后由 airnow 于 2016-07-12 15:08 编辑

回复 2# reyleon


    "getSSID":"8f8207ac03"
后面的 8f8207ac03 不是固定值是 随机的

"8f8207ac03" 替换为 "\"8f8207ac03\""      其实是只有这一段加了几个符号,但是不管中间内容,因为 8f8207ac03 不是固定值

但是 "getSSID": 后面会跟

json处理是因为是安卓手机 不是标准linux 所以有点麻烦

论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
4 [报告]
发表于 2016-07-12 15:11 |只看该作者
sed -r 's/("getSSID":")([a-z0-9]{10}")/\1\\"\2\\"/g'

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
5 [报告]
发表于 2016-07-12 15:17 |只看该作者
回复 1# airnow
  1. sed -r 's/:"([^"]+)"/:"\\"\1"\\"/g'
复制代码

论坛徽章:
0
6 [报告]
发表于 2016-07-12 15:23 |只看该作者
回复 4# ll104567


     "getSSID":"8f8207ac03"
后面的 8f8207ac03 不是固定值是 随机的

论坛徽章:
0
7 [报告]
发表于 2016-07-12 16:18 |只看该作者
回复 5# yinyuemi


    不对

"8f8207ac03" 替换为 "\"8f8207ac03\""
是这样子

论坛徽章:
0
8 [报告]
发表于 2016-07-12 16:18 |只看该作者
回复 4# ll104567


    不对

"8f8207ac03" 替换为 "\"8f8207ac03\""
是这样子

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
9 [报告]
发表于 2016-07-12 16:34 |只看该作者
  1. sed -r 's/:"([^"]*)"/:"\\"\1\\""/g'
复制代码
?

论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
10 [报告]
发表于 2016-07-12 18:22 |只看该作者
回复 6# airnow


    我没固定额、随机不也是十位的数据么、、、
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP