我有两个数据文件, ABC 和 XYZ :
ABC的部分内容:
cancsi(64): 10-s01: (c) Copyright 1995-2014
cancsi> source ncancsi
cancsi> set dump_shm on
on
*Ve3* Loading libsscore.so
*Ve3* : Parallel Dumping.
// X_deb: step # : 9
// X_deb: in : 4'b0000
// X_deb: out : 4'b1110
// X_deb: load (4 , 4'b1010) ;
// X_deb: MK : 4'b1111
// X_deb: step # : 10
// X_deb: in : 4'b0100
// X_deb: out : 4'b1001
// X_deb: load (4 , 4'b1100) ;
// X_deb: step # : 11
// X_deb: in : 4'b0001
// X_deb: out : 4'b1100
// X_deb: load (4 , 4'b1011) ;
// X_deb: MK : 4'b1110
文件XYZ的内容:
This is output file..
Run 5
"Random text"
X_step_9 4 4'b1010 ( 4'b1110)
X_step_10 4 4'b1100 (4'b1001)
X_step_11 4'b1011 (4'b1100)
XYZ的预期输出:
This is output file..
Run 5
"Random text"
X_step_9 4 4'b1010 ( 4'bxxx0)
X_step_10 4 4'b1100 (4'b1001)
X_step_11 4'b1011 (4'bxxx0)
文件 XYZ 的预期格式语法:
X_step_#(提取" out&#34的值;但如果步骤中存在 MK ,那么位" 1"就在那里" MK&# 34;值,脚本应该用" x"替换相同的" out"并替换它和#34; 0"用于" MK&# 34;值" out"应该保持不变。)
我正在使用的脚本存在一些问题,它无法 grep 该步骤的 MK 值并将其放入 XYZ 文件,而不是脚本放置" out"所有步骤的价值。 不幸的是我删除了那个脚本 注意:在 ABC 文件中,并非所有步骤都具有 MK 值。 (在上面的示例中,只有步骤9和11具有 MK 值)。
现在我需要为所有步骤创建一个通用脚本(使用任何语言)(有许多步骤,不仅仅是9,10,11),它们可以执行以下操作:
grep
MK 值。grep
,如果步骤中存在 MK ,那么位&#34 1"是为了那个" MK"值,脚本应该替换" out"用" x"并替换它和任何地方" 0"适用于" MK"价值" out"应保持不变。例如:脚本将从 ABC 中找到步骤9的 MK 值,然后它将在 XYZ 文件中搜索X_step_9然后再搜索将从 MK 值中找到所有 1&#39> 位的位置,然后它将替换" out"值* " x" 每当* 1'"位于 MK 值中的位,如果 0' 那么它将不会对该位置进行任何更改" out"值。 例如:
输入:
// X_deb: step # : 11
// X_deb: in : 4'b0001
// X_deb: out : **4'b1100**
// X_deb: load (4 , 4'b1011) ;
// X_deb: MK : 4'b1110
输出:
X_step_11 4'b1011 (4'bxxx0)
- 它将取代" out"使用x' s" 1"存在于 MK 的相同位置。