2017-05-17 4 views
0

をbashシェルのスクリプトを作成するとき、私はこのスクリプトを持つforループを使用して:Linuxでは

#!/bin/bash 
echo Id,Name,Amount,TS > lfs.csv 

私は(スクリプトで上記のように)作成した列にマッチします値を挿入したい、私は挿入するために、たとえばたい:56、 "Danny"、579,311413567 止めずに値を挿入するが、各インサートの値を変更する 'FOR'ループを使用して挿入できるようにしたい

+0

私はデータを保持する外部テキストファイルを使用するか、またはbashスクリプトからランダムデータを呼び出すhがこのように変更される:反復における それは次のようになります 56、「ダニー」、579,311413567 は、次の反復は次のようになります 57、ようにとの「Danny_1」、580,311413568 とをまで: n、 "Danny_n"、n、n – ErezN

+0

質問を編集して、入力内容と出力内容を表示できますか?今あなたの質問は非常に曖昧で、私はあなたが実際にランダムな値を出力したいというわけではないと確信しています。 – ilkkachu

答えて

1

詳細はお好きなものが役に立ちます正確に達成するために、無限のforループを作って、あなたが$ iで提供するcsvのインクリメントされた数値に行を加えます。

更新: 無限ループを使用して無限にカウントアップし、変数(u_id)を使用して1から100までカウントし、それを元に戻すにはまだ使用しています1へのそれは100

#!/bin/bash 
echo 'Id,Name,Amount,TS,unique_ID' > lfs.csv 

u_id=0 

for ((id=1 ; ;id++)) 
do 
[[ $u_id == 100 ]] && ((u_id = 1)) || ((u_id +=1)) 

     echo $id",Danny_"$id","$id","$id","$u_id >> lfs.csv 

done 

に達している場合は、より大きな数の量とTSを開始したい場合は以下のように$((ID + 50000))に$ IDを・修正することにより、その操作を行うことができます。

echo $id",Danny_"$id","$((id + 300))","$((id + 50000))","$u_id >> lfs.csv 
+0

主キーとなる別の列を追加したいのですが、ループを1から100まで繰り返す必要があり、100になると1から100まで繰り返します。私の直属のマネージャーはどうしたらいいですか? – ErezN

+0

主キーは一意である必要がありますか?だからレコードはこのように見えるはずですか? 1-∞、1-100、名前、金額、TS 他のデータ(名前、金額、TS)からテキストファイルフォーマットを提供できれば、ループエコーを作成するのに役立つでしょうか?私はそれらを扱う? – Edvin

+0

Id、Name、Amount、TS、unique_ID - Idは永遠に実行されている必要があります。名前、量、TS、unique_idは1〜100の範囲で、100になると1から100まで繰り返す必要があります。ありがとう! – ErezN