mysql - SED 删除两个字符实例之间的所有内容
问题描述
我有一个带有 appr 的数据库转储。6.0000 行。它们看起来都是这样的:
{"student”:”12345”,”achieved_date":1576018800,"expiration_date":1648677600,"course_code”:”SOMECODE,”certificate”:”STRING WITH A LOT OF CHARACTERS”,”certificate_code”:”ABCDE,”certificate_date":1546297200}
"STRING WITH A LOT OF CHARACTERS" 是一个包含大约 600.000 个字符的字符串 (!)
我需要删除每一行上的那些字符...我尝试过:
sed 's/certificate\":\"*","certificate_code//'
但它似乎没有成功。
我也找不到可以在这里工作的答案,所以请联系您,希望您能帮助我.. 这最好用 SED 完成吗?或任何其他方法?
现在我不在乎“有很多字符的字符串”上的所有字符是否被删除或替换为 IE a 0,即使这对我来说也可以使用;)
的输出od -xc filename | head
是:
0000000 2d2d 4d20 5379 4c51 6420 6d75 2070 3031
- - M y S Q L d u m p 1 0
0000020 312e 2033 4420 7369 7274 6269 3520 372e
. 1 3 D i s t r i b 5 . 7
0000040 322e 2c39 6620 726f 4c20 6e69 7875 2820
. 2 9 , f o r L i n u x (
0000060 3878 5f36 3436 0a29 2d2d 2d0a 202d 6f48
x 8 6 _ 6 4 ) \n - - \n - - H o
0000100 7473 203a 3231 2e37 2e30 2e30 2031 2020
s t : 1 2 7 . 0 . 0 . 1
希望你能帮我!
解决方案
如果您正在使用bash
,请尝试以下操作:
q=$'\xe2\x80\x9d'
sed "s/certificate${q}:${q}.*${q},${q}certificate_code//" file
结果:
{"student”:”12345”,”achieved_date":1576018800,"expiration_date":1648677600,"course_code”:”SOMECODE,””:”ABCDE,”certificate_date":1546297200}
推荐阅读
- git - git在github上合并冲突
- android - 是否可以将 DI 与 androidx.navigation.NavController 一起使用
- html - 低浏览器分辨率下网页底部的空白区域(CSS-Grid 布局)
- vb.net - 配置 Web.config 以发布 WCF 服务
- delphi - 如何使用 vcl 样式更改按钮字体颜色?
- blockchain - 如何计算我的智能账户和智能资产的费用?
- python - Dask DataFrame 是否适用于大型 Pandas DataFrame?
- java - Spring集成TCP服务器打印传入消息
- date - 在 ISO8601 日期中,UTC 时间可以用 +00:00 后缀表示吗?
- java - 更新方法struts 2-hibernate-jpa