bash - sed 用数字特殊字符替换字符串
问题描述
我想更换
4328" + base64_encode\("\x86\x01\x02\x03\x04\x05\x06\x07\x25\x07\x2E\x01\x02\x03\x04\xBB\x01\x62\x1A\x01\x01
和
4321\x38\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93
尝试了很多选项,我最后一次尝试的是
sed -i 's/4328["] + base64_encode[(]"\x86\x01\x02\x03\x04\x05\x06\x07\x25\x07\x2E\x01\x02\x03\x04\xBB\x01\x62\x1A\x01\x01/"4321\x38\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93"/g' *.utt
解决方案
请您尝试以下,仅使用显示的样本进行测试。
sed -E 's/[0-9]+\".*\x[0-9]+/321\\x38\\x80\\x81\\x8\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8A\\x8B\\x8C\\x8D\\x8E\\x8F\\x90\\x91\\x92\\x93/g' Input_file
假设我们有以下 Input_file。
cat Input_file
singh is king bla bla 4328" + base64_encode\("\x86\x01\x02\x03\x04\x05\x06\x07\x25\x07\x2E\x01\x02\x03\x04\xBB\x01\x62\x1A\x01\x01
现在运行代码后,我们将得到以下输出。
sed -E 's/[0-9]+\".*\x[0-9]+/321\\x38\\x80\\x81\\x8\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8A\\x8B\\x8C\\x8D\\x8E\\x8F\\x90\\x91\\x92\\x93/g' Input_file
singh is king bla bla 321\x38\x80\x81\x8\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93
推荐阅读
- python - 高斯过程的对数边际似然的sklearn计算是正的?
- windows - 需要确定以太网适配器的网络访问类型
- aws-lambda - 停止所有不包含 AWS 中具有特定值的标签的 ec2 实例
- ms-access - 使用日期的条件表达式中的数据类型不匹配
- php - 将代码推送到 GitHub 存储库后如何查找错误?
- sql-server - 如果一列为 Null,则选择其他列
- java - 使用 mySQL 数据库在 JSP 中实现移动平均函数
- php - 如何使用日期从数据库中获取数据?
- mongodb - 如何获取 mongodb 集合中的所有重复文档?
- python - django rest框架中对pandas DataFrame的重复操作