J’essaie d’extraire du texte dans un passage entre deux chaînes enregistrées dans des variables. Quel est le problème avec la manière suivante?
module dft ( a, b, c, clk, z, test_si, test_se ); input [7:0] a; dft_DW_mult_uns_1 mult_31 ( .a(a), .b(b), .product(reg0) ); endmodule
input [7:0] a; dft_DW_mult_uns_1 mult_31 ( .a(a), .b(b), .product(reg0) );
en utilisant le code suivant:
try="module dft"; awk '/$try/{flag=1; next} /endmodule/{flag=0} flag' dft_syn.v
mais il ne reconnaît pas la variable $ try.
Vous pouvez utiliser awk
comme ceci:
sm="module dft" em="endmodule" awk -v sm="$sm" -v em="$em" '$0 ~ em{p=0} p; $0 ~ sm{p=1}' file
… quelle propriété émet en sortie:
input [7:0] a; dft_DW_mult_uns_1 mult_31 ( .a(a), .b(b), .product(reg0) );
-v var="value"
pour passer des variables de ligne de commande du shell à awk
p
lorsque vous rencontrez des balises de début ou de fin