• ベストアンサー

applescript 複数のファイルを一つに

よろしくお願いします。 デスクトップに Aフォルダ があります。 その中に 20120103.csv というタイムスタンプ形式のcsvファイルが複数あります。(中の項目は同じです。) その複数のファイルを一つのcsvファイルにまとめるアップルスクリプトのコードを教えてもらえませんか? よろしくお願いします。

noname#193348
noname#193348
  • Mac
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
noname#250373
noname#250373
回答No.4

お待たせしました。 案の定、No.3にはミスがありました(汗 動作確認済みの以下のスクリプトをお試し下さい。 このままでも動作しますし、必要なら適宜書き換えてご自分のAppleScriptに組み込んでご利用下さい^-^ --catコマンドを用いて指定フォルダ内のCSVを結合するAppleScript --条件:各CSVの最終行に改行があること(ないと変な形でつながる)。 --動作確認:OSX10.6.8, 作成:2013.1.3, 作成者:w6o6n set aFolderPath to choose folder with prompt "フォルダを選択して下さい" set aPath to quoted form of POSIX path of aFolderPath as text set aSaveName to text returned of (display dialog "保存するcsvのファイル名を入力して下さい" default answer "") do shell script "cat " & aPath & "*.csv > " & aPath & aSaveName & ".csv"

noname#193348
質問者

お礼

何度もありがとうございます。 明日には試しては、頑張ってみます。

その他の回答 (3)

noname#250373
noname#250373
回答No.3

お待たせするのも何なので、とりあえず下書きを公開します(動作未確認の暫定版)。 これで動けば良いのですが… エラーがあれば後で訂正します。 set aFolderPath to choose folder with prompt "フォルダを選択して下さい" set aSaveName to text returned of (display dialog "保存するcsvのファイル名を入力して下さい") set aCommand to ("cat " & POSIX path of aFolderPath & "*.csv > " & aSaveName & ".csv") as text do shell script aCommand

noname#193348
質問者

お礼

ありがとうございます。 今手元に環境がないため、明日すぐに試します! 本当にありがとうございます。

noname#250373
noname#250373
回答No.2

ちょっと書き足すだけでできますよ^-^ 今確認できないので、夜までお待ち下さい。

noname#193348
質問者

お礼

ありがとうございます。 よろしくお願いします。

noname#250373
noname#250373
回答No.1

AppleScriptではありませんが…以下の方が簡単です。 ターミナルを起動して、 cd Aフォルダ と入力します(「Aフォルダ」とタイプするのではなく、Aフォルダのパスを入力します。Aフォルダをコピーしてこの部分にペーストすると簡単です) 次に cat *.csv > matome.csv と入力すれば、Aフォルダ内の.csvを一つのcsvファイル(matome.csv)にまとめることができます。 AppleScriptでラップすることもできますので、必要なら頑張ってみて下さい。

noname#193348
質問者

お礼

回答ありがとうございます。 そのやり方は知っていたんですが、どうしてもアップルスクリプトで実行させたかったもので、 説明不足ですいません。

関連するQ&A

  • 複数のcsvファイルをマクロ(VBA)で取り込みたい

    複数のcsvファイルをマクロ(VBA)で取り込みたい csvファイルの中身が、 20090507 120508 osaka 項目1,項目2,項目3,・・・・・,項目10 a1,a2,a3,・・・・・,a10 b1,b2,b3,・・・・・,b10 c1,c2,c3,・・・・・,c10 や 20090507 132529 hokkaido 項目1,項目2,項目3,・・・・・,項目10 d1,d2,d3,・・・・・,d10 e1,e2,e3,・・・・・,e10 f1,f2,f3,・・・・・,f10 となっているcsvファイルが特定のフォルダの中に100以上あります。 このcsvふぁいるの5行目だけをaccessに書き込んでテーブルに追加していきたいと思っています。 項目1,項目2,項目3,・・・・・,項目10 a1,a2,a3,・・・・・,a10 d1,d2,d3,・・・・・,d10 このようなテーブルができればいいのですが・・・ csvファイルを開く→5行目をテーブルに追加→csvファイルを閉じる(削除する)→次のcsvファイルを開く→5行目をテーブルに追加→csvファイルを閉じる(削除する) この流れでいいと思うのですが方法が分かりません。 丸投げですがよろしくお願いします。

  • フォルダ内の、最新のタイムスタンプのファイルを1つだけ取り出す(VBscript)

    フォルダ内に複数のファイルが存在しており、その中でタイムスタンプが一番最新のファイルをコピーしたいと考えているのですが、ファイル同士のタイムスタンプを比較する方法が見つけられませんでした。どなたかご存知の方がいらっしゃいましたら、教えて頂けませんか?

  • 複数のCSVファイルを1つのファイルにまとめる方法

    EXCELで、あるフォルダ(例:Dir1)に格納されている複数のCSVファイルを読み込んで、そのファイルの1行目をコピーし、別ファイル(a.csv)にペーストしたいと思っております。 例えば、Dir1には1.csv,2.csv,3.csvの3つのCSVファイルが存在した時に、a.csvに出力されるのは、 ----------------------------------- 1.csvの1行目 2.csvの1行目 3.csvの1行目 ----------------------------------- となるのが、理想の形です。 方法を知っている方がいらっしゃったら お教えいただければと思います。

  • PHPで複数のテキストファイルを読み込みたい

    PHPを勉強中です。 どうしても自力で解決できないので助けてください。 やりたい事は、 「複数ファイルの内容を読み込み、  それらのデータをcsvのセルに入れたい。」のです。 Aというフォルダに、複数のテキストファイルがあります。 これら各ファイルの内容をそれぞれ取得して 「○○.csv」のB列に上から順々に書き込んでいきたいのです。 Aフォルダに入っているテキストファイルは連番を想定しています。 A/ 0001.txt 0002.txt 0003.txt : フォルダに入っているテキストファイルの数はいろいろです。 3枚のフォルダもあれば100枚のフォルダもあります。 これらのファイルの内容を、それぞれ取得して 用意されているcsvファイルの特定のセルに テキストファイルの数だけ順番に入れていきたいのです。 ○○.csv A列  |  B列  |  C列  | △  |0001.txt内容|  △  | △  |0002.txt内容|  △  | △  |0003.txt内容|  △  | : : プログラムのヒントを教えていただければ嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • VBSでソート&ファイル分割

    VBScriptでCSVファイルを最大5件のレコードになるように ファイル分割しようとしています。 ただし、同じコードが複数のファイルに分かれないようにしたいです。 入力するCSVファイル(test_in.csv)は以下のような形式です。 (実際のファイルに項目行はありません) 連番,コード,フラグ,日付 01,0001,A,20091001 02,0002,A,20091001 03,0003,A,20091002 04,0001,U,20091003 05,0003,D,20091003 06,0004,A,20091003 07,0005,A,20091003 08,0001,D,20091005 09,0006,A,20091003 10,0006,A,20091003 ※入力ファイルに同じコードのレコードが5件を超えることはありません) 上記の入力ファイルの場合は以下の3つのファイルに分割することになります。 【test_out_001.csv】 01,0001,A,20091001 04,0001,U,20091003 08,0001,D,20091005 02,0002,A,20091001 【test_out_002.csv】 03,0003,A,20091002 05,0003,D,20091003 06,0004,A,20091003 07,0005,A,20091003 【test_out_003.csv】 09,0006,A,20091003 10,0006,A,20091003 ※コード"0003"のレコードは2件あるので、test_out_001.csvには出力せず、  test_out_002.csvに出力します。  コード"0006"についても同様でtest_out_003.csvに出力します。 処理の手順としては 入力ファイルのデータをコードでソートし、 1ファイルに5件を超えないように追加していくのかと思いますが、 ソートと5件制限はどのように記述すればよいでしょうか?

  • 複数ファイルを圧縮するスクリプト

    http://q.hatena.ne.jp/1123181645 上記リンクのURLに「Windowsでフォルダ内にある複数の ファイルを個別にZip圧縮するスクリプトを組みたい」 との質問があり、返答のなかに回答のスクリプトがありますが、 このスクリプトを「複数ファイルを個別にZIP圧縮する」のではなく、「複数ファイルを纏めてひとつのZIPファイルに圧縮する」に 変更するスクリプトをどなたか教えて頂けますでしょか。 すいませんが宜しくお願いします。

  • 1レコードからなるファイルを複数レコードに分割

    可変長の1レコードのみのファイル(固定長のレコードが改行コードなくつながっている)をもとにして、固定長のcsvファイルを作成する方法をお教えください。 具体的には、 項目A(10バイト)、項目B(5バイト)、項目C(20バイト)からなる35バイトのデータが改行コードなくつながっている50000バイトくらいの1レコードを入力して、項目A,B,Cから1レコードが構成されるcsvファイルを作成したいと思います。 よろしくお願いします。

  • VBA 複数ファイルを読み込んで、抽出

    VBA初心者です。どうぞよろしくお願いいたします。 <やりたいこと> 同じフォルダにある複数ファイル(logファイル)を順番に読み込み、 特定の文字が含まれている行だけを、別ファイル(sum.csv)に保存していきたい。 ファイルが多数あるため、VBAで処理できればと思っています。 急いでおり、今回は丸投げになりますが、どなたかコードを教えていただけますと 非常に助かります。 コードを見て、勉強させていただきます。 どうかよろしくお願いいたします。

  • VBScriptでのファイル読込について

    CSVファイル内のデータをキー項目(コード)ごとに分け、 それぞれ別のCSVファイルに出力しようとしています。 使用する言語はVBSです。 CSVファイルは以下のような形式です。 連番,コード,フラグ,日付 1,0001,A,20091001 2,0002,A,20091001 3,0002,U,20091002 4,0001,D,20091003 CSVファイルは既定の文字コード(UnicodeBE BOMなし)の形式であり、 通常のファイルを読み込むような処理では正しく 読み込むことが出来ませんでした。 (OpenTextFileメソッドの第4引数にUnicodeBEは指定できないのでは…?) また、CSVファイル内のデータは"コード"でソートされておらず、 VBSではソート機能を標準で持っていないため そちらについても実装する必要があります。 ファイルを取り込む際の文字コードの指定や ソート処理について詳しい方、ご回答よろしくお願いします。

  • フォルダ内の複数ファイルから抽出(vbs)

    web のログファイルの集計のため、以下が可能なコードを教えていただきたい。 そのまま使えるコードですと非常に助かります。 (vbs または vba) logというフォルダに、複数のログファイルが入っています。 ファイルの文字コードは、UTF8  改行は、LFです。 この複数のファイルから、特定の文字列の入っている行を抜き出して、 1つのCSVファイルに書き出したい。(文字コードをShift-Jis 改行は、CRLFに変えたい) どうかお助けください。宜しくお願いいたします。