次のようなエントリが何千個も含まれたファイルがあります:
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=,
変数を初期化します。「アクション」ステートメントは各レコードに対して実行され、最初のフィールドを後置増分に設定し、再構成されたレコードを出力します。n
800
n=800
{$1=n++; print}
n