スクリプトを使用して、テーブルを含む HTML を .csv ファイルに変換しようとしていbash
ます。
これまでのところ、次の手順を実行しました。
- Unix 形式に変換 ( を使用
dos2unix
) - すべてのスペースとタブを削除します (で
sed 's/[ \t]//g'
) - すべての空白行を削除します (with
sed ':a;N;$!ba;s/\n//g'
) (HTML ファイルにはテーブルの各セルに空白行があるため、これは必要です...それは私のせいではありません) <td>
不要なタグとタグを削除し<tr>
ます( 付きsed 's/<t.>//g'
)</td>
「,」に置き換えます(でsed 's/<\/td/,/g'
)</tr>
行末 (\n
) 文字に置き換える ( withsed 's/<\/tr/\n/g'
)
もちろん、これらすべてをパイプラインに入れています。これまでのところ、うまく機能しています。私が立ち往生している最後のステップが 1 つあります。テーブルには日付の列があり、その形式dd/mm/yyyy
は であり、それらを に変換したいと考えていyyyy-mm-dd
ます。
sed
(またはを使用して)それを行う(簡単な)方法はありawk
ますか?
データ サンプルsed
(パイプ全体の後):
500,2,13/09/2007,30000.00,12,B-1
501,2,15/09/2007,14000.00,8,B-2
期待される結果:
500,2,2007-09-13,30000.00,12,B-1
501,2,2007-09-15,14000.00,8,B-2
これを行う必要があるのは、このデータを MySQL にインポートする必要があるためです。ファイルを Excel で開き、手動で形式を変更することもできましたが、それはスキップしたいと思います。