目次

文字列並べ替え(AWK)

 アセンブリ言語で記述してあるラベル定義を
 Cのマクロ定義に置換したい場合があります。
 次のような例です。

PIO_AD	EQU	1CH
PIO_AC	EQU	1DH
PIO_BD	EQU	1EH
PIO_BC	EQU	1FH
  ↓
sfr at 0x1C PIO_AD ;
sfr at 0x1D PIO_AC ;
sfr at 0x1E PIO_BD ;
sfr at 0x1F PIO_BC ;

 テキストファイルに、アセンブリ言語のラベル
 定義を入れておき、各フィールドの並べ替えを
 して、必要な文字列を付加します。

{
  printf("sfr at 0x%s %s ;\n",substr($3,0,2),$1)
}

 あるいは、次のように記述します。

{
  print "sfr at 0x" substr($3,0,2) $1 " ;"
}

 文字列処理関数を利用して、不要な'H'を
 取り除いてあります。

 実際の動作は、以下。



 数行程度のフィールドであれば、手で並べ替えて
 すぐに終わりますが、10行以上になった場合は
 スクリプトを使った方が、ミスが減るでしょう。


目次

inserted by FC2 system