linux - 用 sed 替换 log4j 转换模式
问题描述
每当实际包含的文本需要替换为 sed 中的文本输出时,我都会尝试替换。它对我不起作用。
实际文字:
%d{ConversionPattern} %-5p [%c{1}] %m%n
我需要的文本输出
%d{ConversionPattern} %-5p [%c{1}] [%t] - %X{Sample} - %m%n
命令 :
sed -i "/<param name=\"ConversionPattern\" value=\"%d{ConversionPattern} %-5p [%c{1}] %m%n\"\/>/s@@<param name=\"ConversionPattern\" value=\"%d{ConversionPattern} %-5p [%c{1}] [%t] - %X{Sample} - %m%n\"\/>@"
解决方案
使用您显示的示例,请尝试以下操作。
sed -E 's/(.*\])[[:space:]]++(.*)$/\1 [%t] - %X{Sample} - \2/' Input_file
说明:使用sed
's 的替换功能并替换从开始到直到的所有内容]
并将其保留在第一个反向引用中,然后将其之后的所有内容保留到第二个反向引用中。在将其替换为- %X{Sample} -
在 2 个反向引用值之间提及以插入新文本时。
注意:上面的代码将在终端上打印输出,一旦您对上面的结果感到满意,那么您可以运行上面的命令并sed -i
选择执行就地保存。
推荐阅读
- cmake - 为所有配方无条件复制 ${SRC_DIR} 中的文件
- xml - 当只读小部件字段没有值时如何删除错误值,对于 Odoo11?
- jasper-reports - Jasper Reports:将来自不同数据适配器的两个数据集连接在一起的最佳方法是什么?
- javascript - arr.push(arr.splice(n,1)) “吞噬”移动对象的属性
- sql - 使用 SQL 查询获取 ID 的 R 向量错误
- android - 数据库查询在 SQLite 房间中不起作用
- c# - 如何删除我的 DataGridView 列中的时间
- c# - Jquery Select2,从结果控制器设置参数函数以获取 ID 或点击 Jquery Select2
- regex - 使用正则表达式python在标点符号后小写字母
- python-3.x - 如何通过python中的用户输入找出阶乘数?