![txt ファイル内の特定の「列」を変更する](https://rvso.com/image/88803/txt%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%86%85%E3%81%AE%E7%89%B9%E5%AE%9A%E3%81%AE%E3%80%8C%E5%88%97%E3%80%8D%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B.png)
次のようなエントリが何千個も含まれたファイルがあります:
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