awk/sed/linux-shellスクリプトを使用してLinuxでmysqlデータベースを更新するには?

awk/sed/linux-shellスクリプトを使用してLinuxでmysqlデータベースを更新するには?

2つの列に分割された「Frequency.txt」というデータファイルがあります。列1は、IDの対応する列2との繰り返しを示す数字「Frequency」です。

例:-

データ

周波数、ID

 32    329
312    330
320    331
132    332
232    334
 52    336
 42    337
 82    338
 ..    ...     

上記のデータはmysqlデータベースの列で更新​​する必要があります。 100以上の行があり、毎日更新されます。これで、このコマンドを使用して手動で更新しています。

echo ' update table.id_set set 'frequency' = 32 whereID=329; '|mysql -B -u username -p -h database.com

上記のechoコマンドの「Frequency」と「id」の値を自動的に置き換え、Frequency.txtのすべての既存の行に対してスクリプトを実行するシェルスクリプトを作成する方法

PS:-Frequency.txtの行数は異なります。

ベストアンサー1

あなたはそれを使用することができますMySQLのインポートまたは直接電話してデータファイルのロードsql文(mysql経由)。

mysqlimportは「固定幅」のデータファイルが好きではありませんが、次のことがわかります。固定幅、スペースで区切られた.txtファイルをmySQLにロードするこれを処理する方法の例です。

はい

この例は以下に依存します。仮説この列はidテーブルの主キーですid_set

LOAD DATA LOCAL INFILE '/some/path/data.txt' 
REPLACE INTO TABLE id_set
(@row)
SET frequency = TRIM(SUBSTR(@row,1,7)),
    id = TRIM(SUBSTR(@row,8,50))
;

おすすめ記事