因为sed默认输出所有数据行,sed 's/a/b/g'处理,没有被匹配的数据正常输出
我想在sed 执行一条'/pattern/command' 命令之后继续编辑刚才匹配到的行,最终没有匹配的数据依然能
如果sed内部没有管道功能,只能sed -e '/pattern/command1'
-e '/pattern/command2' -e '/pattern/command3'
每次都要重新匹配模式
比如我想做以下处理:
Start file:
/Page0
SSD_Single(0xE0,0x00);
//--- PASSWORD ----//
SSD_Single(0xE1,0x93);
SSD_Single(0xE2,0x65);
SSD_Single(0xE3,0xF8);
End file:
//Page0
data_arry[0] = 0x00E01500;
dsi_set_cmdq(data_array, 1, 1);
MDELAY(1);
//--- PASSWORD ----//
data_arry[0] = 0x93E11500;
dsi_set_cmdq(data_array, 1, 1);
MDELAY(1);
data_arry[0] = 0x65E21500;
dsi_set_cmdq(data_array, 1, 1);
MDELAY(1);
data_arry[0] = 0xF8E31500;
dsi_set_cmdq(data_array, 1, 1);
MDELAY(1);
data_arry[0] = 0x03801500;
dsi_set_cmdq(data_array, 1, 1);
MDELAY(1);
我目前用这样的脚本:
cat "${file}" | sed -r '
s/^\s*\|\s*$//g
s/^SSD_Single.*0x(.*),0x(.*)\);/0x\2\11500/
s/^0x.*/data_arry[0] = &;/g
/data_arry.*/a\dsi_set_cmdq(data_array, 1, 1);\nMDELAY(1);
'
注意sed 第2~4行命令,实际上第2到第4行都是对同一行数据进行处理,但是在第3行和第4行命令却还要用0x和data_arry 进行匹配查找才能对同一行进行处理,我希望能在一条匹配之后继续在该匹配行执行多个命令