Awk 找到一个单词并在单词&;中增加数字;保存到新文件中
我正在寻找一个perl/awk/sed命令来自动增加文件P1.tcl中的数字行:Awk 找到一个单词并在单词&;中增加数字;保存到新文件中,awk,sed,numbers,increment,Awk,Sed,Numbers,Increment,我正在寻找一个perl/awk/sed命令来自动增加文件P1.tcl中的数字行: run_build_model sparc_ifu_dec run_drc set_faults -model path_delay -atpg_effectiveness -fault_coverage add_delay_paths P1 set_atpg -abort_limit 1000 run_atpg -ndetects 1000 我想将P1从P2更改为P500,并保存到新文件中,如P2.tcl、P3
run_build_model sparc_ifu_dec
run_drc
set_faults -model path_delay -atpg_effectiveness -fault_coverage
add_delay_paths P1
set_atpg -abort_limit 1000
run_atpg -ndetects 1000
我想将P1从P2更改为P500,并保存到新文件中,如P2.tcl、P3.tcl。。。。P500.tcl
我在网上搜索了这个,但找到了替换/生成一个文件的唯一方法。比如P2.tcl
最好的
Jaeyoung未经测试:
for i in {2..500}; do
cp P1.tcl P$i.tcl
sed -i s/P1/P$i/ P$i.tcl
done
未经测试:
for i in {2..500}; do
cp P1.tcl P$i.tcl
sed -i s/P1/P$i/ P$i.tcl
done
awk
不太清晰,但对于这样长的循环速度更快:
awk '{for (n=2; n<=500; n++) {line = gensub(/P1/, "P" n, "g", $0); print line > "P" n ".tcl"}}' P1.tcl
awk'{for(n=2;n“P”n.tcl”}'P1.tcl
使用
gensub
将P1
替换为“p”n
awk
对于这样长的循环来说,不太清晰,但速度更快:
awk '{for (n=2; n<=500; n++) {line = gensub(/P1/, "P" n, "g", $0); print line > "P" n ".tcl"}}' P1.tcl
awk'{for(n=2;n“P”n.tcl”}'P1.tcl
使用
gensub
将P1
替换为“p”n使用var和loop使用var和loop注意范围大括号扩展受Bash 3+和ksh支持,而不是所有shell。注意范围大括号扩展受Bash 3+和ksh支持,而不是所有shell支持。