2011-12-10 8 views
-3

私はいくつかの行のテキストファイルがあります。どのようにテキストファイルは、Linuxで使用してこのツールのように変換し、自動化することができますか?

私は、次の操作を実行したい: 1.最初の14個の文字を削除します。次の8文字を残してください。その後、その行のすべてを削除します。

次に、ファイルは次のようになります。各行の先頭に

20050013 
AC040020 
AC050024 
  1. 、私はRAM [n]は、nはインクリメントし続ける=「H、のようなものを追加したいです。私はまた、最後に。

は次に、ファイルは、ファイル内の10件のエントリがなければならない。この

RAM[0] = 'h20050013; 
RAM[1] = 'hAC040020; 
RAM[2] = 'hAC050024; 

のように見えます。だから私は残りのエントリを追加し、0にそれらを設定ファイルは次のように終わる:

RAM[0] = 'h20050013; 
RAM[1] = 'hAC040020; 
RAM[2] = 'hAC050024; 
RAM[3] = 'h00000000; 
RAM[4] = 'h00000000; 
RAM[5] = 'h00000000; 
RAM[6] = 'h00000000; 
RAM[7] = 'h00000000; 
RAM[8] = 'h00000000; 
RAM[9] = 'h00000000; 

私はperlスクリプトやviを使うことができると思います。このプロセスはどのように自動化できますか?

+0

8文字しか保持しないと、3行の4(16進数、私は仮定します)の文字をどのように得ることができますか?あなたの説明は非常に混乱しています。 – BatchyX

+0

先頭には各行に8桁の16進文字があります。 –

答えて

1

Awkを使用してください。

{ 
    printf("RAM[%d] = '%s;\n", NR - 1, $0) 
} 

(自分のデータにawk -f foo.awkを実行し、foo.awkでそれを入れてください。)

1

これはAWKで行うのは非常に簡単です。部分文字列と$ NRを使用する

関連する問題