正直に書くブログ

2012年9月からフリーランス活動開始しました。
今後もマニアックでも有用な情報を提供出来るように頑張ります。

スクリプト

awkでcsvファイルをXML形式にする

GoogleマーチャントにXML形式で商品情報を登録すると、Googleショッピングにリストされるようになる。Yahoo!ストアに出店していればほぼ漏れなくリストアップされるらしいが(楽天は除外されているっぽい)、Yahoo!ストアに出店していなくてもリストアップされるのは嬉しいことではないだろうか?

XMLに含ませる最低限必要な情報は、EC-CUBEがGoogleショッピング向けのRSSフィードを生成出来るようになったとの情報から参考にさせてもらった。Googleのオフィシャルなサンプルを参考にさせてもらって極シンプルなRSSフィード(XMLデータ)を作ってみる。

  • 商品名
  • 商品ページのURL
  • 商品の説明
  • 商品画像のURL
  • 商品の販売価格
  • 商品の状態(中古・新品)
  • 商品の管理ID
これらの情報を持つCSVファイルを用意すれば、あとは下記の情報をawkスクリプトに書き加えるだけでXMLファイルが生成できた。
  • サイト名
  • サイトURL
  • サイトの説明文
awkの使い方は細かく説明しないが、プログラミング出来ない私が(苦笑)awkの仕組みを活用してprintという単純なコマンドだけでXML形式で書き出す事ができた。参考になれば幸いだ。続きを読む

awkってCSV形式のデータファイル編集に持ってこいじゃないか?

ネットショップ系の仕事をしていると、商品データやら在庫データやらの膨大なデータを扱う事になる訳だが、データベースに食わせる前段階で下ごしらえするのに、Excelは欠かせないツールとも言える。

しかーし、ケースバイケースだが、テキストエディタの方がExcelよりももっと柔軟に対応出来る場面も多く、結局組み合わせて作業をする事にするか、ルーチンとなる場合は、MS-AccessやFileMakerなどで作ったデータベースシステム(ツール)にいったんインポートして、処理をした後にエクスポートで再びCSV形式とすることになる。このCSVファイルをモールにアップロードして商品情報などを更新させる訳だ。システムの初期データとしてもCSVで流し込む方が効率が良くて現実的。

そんな訳で、ここんところCSVファイルの整形作業が多くなっており、どうやったら効率が上がるかなぁと考えてみたりした。以前、郵便番号データがExcelの読み込み限界を超えていて処理が出来なかった時awkを使ったのを思い出し、もうちょっと詳しく調べてみたところ、awkでスクリプトを書けばかなり柔軟な事が出来ることが判明した(本気でやればプログラミングとも言えるだろう)。正規表現ももちろん使えるしデータの整形にかなり有効なのではないかと思われる。

ネット上にも色々なノウハウは紹介されているが概念的なところから理解したいので本が欲しい。awkを学ぶのに最適な本は無いのかな?と思ったら評判の良いロングセラーな本「AWKを256倍使うための本」が見つかった。内容的に目新しさは無いらしいが要点を押させている良本として評判が高いらしい。これは買いかな。


AWKを256倍使うための本 (Ascii 256倍)AWKを256倍使うための本 (Ascii 256倍)
著者:志村 拓
ASCII(1993-08)
販売元:Amazon.co.jp
クチコミを見る
sed & awkプログラミング 改訂版sed & awkプログラミング 改訂版
著者:Dale Dougherty
オライリー・ジャパン(1997-10-01)
販売元:Amazon.co.jp
クチコミを見る
プログラミング言語AWK (新紀元社情報工学シリーズ)プログラミング言語AWK (新紀元社情報工学シリーズ)
著者:P. J. ワインバーガー
新紀元社(2004-01)
販売元:Amazon.co.jp
クチコミを見る

久しぶりにWindowsのBATファイル書き(FTP転送)

Windowsで自動処理させるためのスクリプトを書く必要性が出てきました。私がWindowsを仕事でいじり始めたのは98SEの頃だったのですが、当時の職場にはNetwareサーバーが有ったり、NTサーバーが有ったりで一応バッチファイルやコマンドプロンプトは使う機会があったのです。

でも本当に超久しぶりなのですっかり忘れてしまっています。

とりあえずFTP転送を自動で行なうためのスクリプト書きをしてみました。今はGoogleなどで直ぐに検索してアタリを付けられるので良い時代ですね。スタートからある程度の情報もって開始できます。

とりあえずCドライブ直下にフォルダを作ってそこからFTPで転送する試験。FTP転送を行なう基本スクリプトは下記の様になると思います。前提条件としては、C:\tempにこの(下記)スクリプト(ftpscript.txt)を置いておくこと。それと同時に同フォルダ内にdata091218.csv、file091218.csvという感じのCSVファイルが存在すること。同じ条件で使うことは無いと思うのであくまでも参考にアレンジして頂く必要ありですね。

open ftp.server.name
userid
password
ascii
cd array/backup/ftptest
put data*.csv data.csv
put file*.csv file.csv
quit

使い方はいたって簡単で、このスクリプトをftpコマンドから実行するだけのことです。下記の様な感じで。

C:\tmp>ftp -i -s:ftpscript.txt

ftpコマンドにiオプションを付けて一々確認させなくします。sオプションは手順を書いてあるスクリプトファイルを指定するものです。たったこれだけのことで、Windowsのftpクライアントはftp.server.nameにアクセスし、useridとpasswordでログインし、ASCIIモードでarray/backup/ftptestにdata.csvとfile.csvというファイルをアップロードします。

これくらいなら普通に苦労もなくBATファイル化することが出来ますね。でもまだまだお仕事は終わらないのであります。こんなの条件分岐ないから序の口だし・・

記事検索
月別アーカイブ
SEO的な実験
RSS

ブログランキング

track feed 正直に書くブログ
最新コメント
スポンサードリンク
QRコード
QRコード
  • ライブドアブログ