mb0.h
16進数がいくつかあります。
B0000000
B80806B0
B0000000
まもなく...
以下のcmdを使用して次のテキストを追加しました。
sed -i 's/\$/);/' ../mb0.h
sed -i 's/^/PS_Out(TILE_ADDR(0,0)+0x00020000+, /' ../mb0.h
これにより、以下のようにテキストが生成されます。
PS_Out(ADDR(0,0)+0x00020000+, B0000000);
PS_Out(ADDR(0,0)+0x00020000+, B8080050);
PS_Out(ADDR(0,0)+0x00020000+, B0000000);
PS_Out(ADDR(0,0)+0x00020000+, B8080954);
PS_Out(ADDR(0,0)+0x00020000+, B0000000);
PS_Out(ADDR(0,0)+0x00020000+, B80806B0);
PS_Out(ADDR(0,0)+0x00020000+, 00000000);
PS_Out(ADDR(0,0)+0x00020000+, 00000000);
PS_Out(ADDR(0,0)+0x00020000+, B0000000);
まもなく...
私は出力が欲しい -0、4、8 .... 4*(行番号-1)が太字で下に追加されます。
PS_Out(アドレス(0,0)+0x00020000+0、B0000000)。 PS_Out(アドレス(0,0)+0x00020000+4、B8080050)。 PS_Out(アドレス(0,0)+0x00020000+8、B0000000)。 PS_Out(アドレス(0,0)+0x00020000+12、B8080954)。 PS_Out(アドレス(0,0)+0x00020000+16、B0000000)。 PS_Out(アドレス(0,0)+0x00020000+20、B80806B0)。 PS_Out(アドレス(0,0)+0x00020000+24、00000000); PS_Out(アドレス(0,0)+0x00020000+28、00000000); PS_Out(アドレス(0,0)+0x00020000+32、B0000000)。
まもなく...
入力ファイルのテキストを生成するためにsedを使用していますが、sed自体を使用してパターンマッチング後に数字を挿入できるのか、可能であればawkコマンドを使用できるのかわかりません。解決に役立つ -
答え1
マイナーawk
:
awk '{print "PS_Out(ADDR(0,0)+0x00020000+"(NR-1)*4", "$0");"}' ../mb0.h
sed
GNUなどの内部編集の場合は、GNUで1を使用するか、次に切り替えること-i
ができます(GNUがコピーした場所)。-i /usr/share/awk/inplace.awk
awk
perl
sed
-i
perl -i -lne 'print "PS_Out(ADDR(0,0)+0x00020000+", ($.-1)*4, ", $_);"' ../mb0.h
^使用しないでください-i inplace
現在の作業ディレクトリから最初に拡張機能をgawk
ロードしようとすると、誰かがそのディレクトリにマルウェアを植えた可能性があります。システムに付属の拡張プログラムのパスは異なる場合があります。出力を参照してください。inplace
inplace
inplace.awk
inplace
gawk
gawk 'BEGIN{print ENVIRON["AWKPATH"]}'
答え2
次の手順を完了してください。
i=0
awk -v i="$i" '{print "PS_Out(ADDR(0,0)+0x00020000+"i", "$1");";i=i+4}' file1.txt
出力
PS_Out(ADDR(0,0)+0x00020000+0, B0000000);
PS_Out(ADDR(0,0)+0x00020000+4, B80806B0);
PS_Out(ADDR(0,0)+0x00020000+8, B0000000);