Vim*_*imo 5 shell sed awk python
A。有一组线路如下所示。
cr_v8_sel0 : cross cp_v8_en, cp_sel0 {
ignore_bins ig_v8_sel0 = binsof(cp_v8_en) && binsof(cp_sel0) intersect {[0:3],[5:$]};
}
Run Code Online (Sandbox Code Playgroud)
b. 我想多次打印同一组行,并将十进制字符串从 sel0 更改为 sel31。
C。例如: 注意:sel0 是将行更改为 sel1 并打印。并且需要从 sel0 到 sel31。
cr_v8_sel0 : cross cp_v8_en, cp_sel0 {
ignore_bins ig_v8_sel0 = binsof(cp_v8_en) && binsof(cp_sel0) intersect {[0:3],[5:$]};
}
cr_v8_sel1 : cross cp_v8_en, cp_sel1 {
ignore_bins ig_v8_sel0 = binsof(cp_v8_en) && binsof(cp_sel1) intersect {[0:3],[5:$]};
}
Run Code Online (Sandbox Code Playgroud)
d. 我们可以用某种 for 循环方式来打印它们吗?而不是用手打字?使用 sed 或 awk 或任何脚本命令?
尝试:
awk '{print; for (i=1;i<=31;i++) {x=$0; gsub(/sel0/, "sel" i, x); print x;}}' RS="" file
Run Code Online (Sandbox Code Playgroud)
例如,重复次数限制为 3 次:
$ awk '{print; for (i=1;i<=3;i++) {x=$0; gsub(/sel0/, "sel" i, x); print x;}}' RS="" file
cr_v8_sel0 : cross cp_v8_en, cp_sel0 {
ignore_bins ig_v8_sel0 = binsof(cp_v8_en) && binsof(cp_sel0) intersect {[0:3],[5:$]};
}
cr_v8_sel1 : cross cp_v8_en, cp_sel1 {
ignore_bins ig_v8_sel1 = binsof(cp_v8_en) && binsof(cp_sel1) intersect {[0:3],[5:$]};
}
cr_v8_sel2 : cross cp_v8_en, cp_sel2 {
ignore_bins ig_v8_sel2 = binsof(cp_v8_en) && binsof(cp_sel2) intersect {[0:3],[5:$]};
}
cr_v8_sel3 : cross cp_v8_en, cp_sel3 {
ignore_bins ig_v8_sel3 = binsof(cp_v8_en) && binsof(cp_sel3) intersect {[0:3],[5:$]};
}
Run Code Online (Sandbox Code Playgroud)
print
这会打印出带有 的原始版本sel0
。
for (i=1;i<=31;i++) {x=$0; gsub(/sel0/, "sel" i, x); print x;
这会从 1 循环i
到 31,进行替换并打印结果。
RS=""
这告诉 awk 一次读取整个段落。由于您的源代码没有空行,因此具有立即读取整个源代码的效果。
awk '
{
print
for (i=1;i<=31;i++)
{
x=$0
gsub(/sel0/, "sel" i, x)
print x;
}
}
' RS="" file
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1725 次 |
最近记录: |