txt ファイル内の特定の「列」を変更する

txt ファイル内の特定の「列」を変更する

次のようなエントリが何千個も含まれたファイルがあります:

6/05/2016,32,34,40,45,48,,01,10
10/05/2016,02,26,27,40,49,,05,10
13/05/2016,07,15,28,31,42,,10,11
17/05/2016,15,27,32,36,39,,03,10

最初のフィールドの日付を800から始まる連続番号に置き換えたい。このリストは次のように変換される。

800,32,34,40,45,48,,01,10
801,02,26,27,40,49,,05,10
802,07,15,28,31,42,,10,11
803,15,27,32,36,39,,03,10
...

それ、どうやったら出来るの?

答え1

それawkはとても簡単です

awk -F, -vOFS=, '{$1=n++; print}' n=800 file

,およびを使用して入力および出力区切り文字を設定し-F,、を使用して-vOFS=,変数を初期化します。「アクション」ステートメントは各レコードに対して実行され、最初のフィールドを後置増分に設定し、再構成されたレコードを出力します。n800n=800{$1=n++; print}n

関連情報