• 締切済み

perl テキストの連結

細かくテキストに分けて保存しておいた文章ですが、一つのテキストに連結したいのです。 数が500ほどあるので手動では無理です… 例です 1.txt 2.txt 3.txt を 1、txt  (まとめて) 中身の順番は 1.txt 2.txt 3.txt のような感じにしたいです。 おねがいします。

みんなの回答

  • iichiho
  • ベストアンサー率37% (416/1114)
回答No.5

$ cat /Users/{あなたのユーザ名}/Desktop/a/* > /Users/{あなたのユーザ名}/Desktop/ALL.txt コレでいいんじゃないですか? ただし、どのような順番で連結されるかは指定できず、 $ ls で表示されるファイルの順番に連結されます。 ようは、1,2,3,4,5,6,7,8,9,10,11,12,13,14は、 1,10,11,12,13,14,2,3,4,5,6,7,8,9, という順番で連結されます。 これを回避するためには、番号部分を 01,02,03,04,05,06,07,08,09,10,11,12,13,14 という風にするか、前回の私の回答に書いたとおりの方法になります。 あと、この場合のファイル名の指定の注意点として、ALL.txtはaフォルダの中に作ってはいけません。 (*がディスクが一杯になるまでにALL.txtを読み続けてしまいます)

hanahana_2
質問者

補足

返信遅れてすいませんでした。 何回かやったのですが空のall.txtだけがでてきます。 ターミナルに-bash: $: command not found という文が出てくるだけでしたorz

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

補足を読みましたが言葉どおりでは意味がわかりません。 プログラムやコマンドを使おうとするなら些細な書き間違いをなくすように努めてください。相手はおバカなコンピュータです、私たち人間が何を言わんとしているのか汲み取って言われたことと違う動作をすることはありません。 お小言はこのくらいにして… デスクトップにある『a』という☆フォルダ☆に含まれるファイル全部を、ファイル名の順番につなげて1つのファイルを生成するということであれば2通りのコマンドの書き方があります。 【1】入力・出力ともに対象のファイルをフルパスで指定する 【2】対象のファイルのあるところへ移動してから操作する 【1】の場合は $ cat /○○/××/□□/△△/*.txt > /○○/××/□□/▽▽/ALL.txt (たぶん、○○はUsers ××はあなたのコンピュータ上の名前(ユーザー名) □□はDesktop △△は補足文によるとa ▽▽は△△と同じでもいいけど違うところでも可:階層の深さやそれぞれのダイレクトリの名前は正確ではありません) 【2】の場合、まずターミナルの窓が開いたときは(デフォルトでは)あなたのホームダイレクトリが作業対象なので、目的の位置にcdコマンドで移動します。 $ cd /○○/××/□□/△△/ とか $ cd ~/□□/△△/ など。 移動できたら$の左側が△△に変わります。そして $ cat * > ALL.txt  (そこにあるファイル全部でなく.txtで終わる名前のファイルだけなら * の代わりに *.txt) ※途中のダイレクトリの名前が日本語だとちょっと面倒かもしれません。 ※ダイレクトリ=ディレクトリ=フォルダです。 「フルパス」「cdコマンド」「~/」「*」「>」「>>」などはターミナルでの操作の基本ですので調べてみてください

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

cat はそのためにあるプログラムです。(表示するためのものではありません)なので、 $ cat 1.txt 2.txt 3.txt > ALL.txt でできます。 くっつける順番が確実にファイル名の数字や文字の順番どうりなら $ cat *.txt > ALL.txt でもできます。

hanahana_2
質問者

補足

すいません、$ cat *.txt > ALL.txt を教えてもらったのですが デスクトップのファイル aの中のすべてのファイルを繋げるにはどうしたら良いでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • iichiho
  • ベストアンサー率37% (416/1114)
回答No.2

別にperlを使わなくてもいいような気がします。 ターミナルのコマンドライン上で、下記のように実行すればいいだけです。 cat 1.txt > ALL.txt cat 2.txt >> ALL.txt cat 3.txt >> ALL.txt cat 4.txt >> ALL.txt    ・    ・    ・ 最初だけ">"ですが、これはALL.txtの中身をクリアして1.txtの中身を格納するもので、続く">>"はファイルの中身をクリアせずに追加でALL.txtに書き込んでくれます。 ファイル名の一覧があるのでしたら、バッチファイルをを作って実行するのもアリです。

全文を見る
すると、全ての回答が全文表示されます。
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

テキストファイルの結合くらいなら、Perlに登場いただかなくても、Mac OS X付属のAutomatorで処理可能です。 Automator 2.0.2(Mac OS X 10.5)をもとにして説明します。 (1) 「ファイルとフォルダ」>「Finder項目の選択を求める」をワークフローにドラッグ&ドロップ。 「タイプ:」をフォルダにする。 (2) 「ファイルとフォルダ」>「フォルダの内容を取得」をワークフローにドラッグ&ドロップ。 (3) 「テキスト」>「テキストファイルを結合」をワークフローにドラッグ&ドロップ。 (4) 「テキスト」>「新規テキストファイル」をワークフローにドラッグ&ドロップ。

hanahana_2
質問者

補足

OSが4なのでその方法が使えそうにありません。 説明不足で申し訳ありませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access2010 テキストの連結

    よろしくお願いします。 Access2010を使用しております。 非連結のフォームに入力した情報を、 保存ボタンで、テーブルに追加しております。 そこで、サブフォームにある複数のテキストボックスをボックス毎に改行して、 一つのフィールドに入れたいと思っております。 一つ一つのテキストボックスは別テーブルを作っておりますが、メインにしているテーブルには、一つのフィールドに入れたいのです。 txt箱1、txt箱2、…txt箱20の空白ではないテキストボックスを改行して、一つのフィールドに追加したいです。 テキストボックスが、ランダムに記入されていたり、空白が間にあると、 うまく一つのフィールドに入れることができません。 改行が何個も入った箇所ができてしまいます。 間に空白があっても、改行を綺麗に入れて、 一つのフィールドに入力させるには、どうしたらよろしいでしょうか。 お世話になりますが、よろしくお願いします。

  • テキストファイル連結のDOSコマンドについて

    テキストファイル連結のDOSコマンドについて あるフォルダに下記の様なテキストファイル群があります a.txt、b.txt、c.txt、d.txt・・・・ これらをすべて連結するには copy *.txt all.txt とすればいいのですが、一つ一つのファイルの区切りに目に「■■■■■■■■■■■■■■■」のような区切り文字を入れたいのですが何らかの方法はありますでしょうか?

  • VBSでフォルダ内のテキストファイルを全て連結するには?

    フォルダAの中に以下のファイルがあります。  ・1.txt  ・2.txt   ・   ・   ・  ・10.txt これを全て連結させたsum.txtを出力として同じフォルダに入れたいと考えています。 ファイル名を取得してフォルダの中の上から順番にsum.txtへ書き込んでいけばいいのはわかるんですが どのようにプログラムで書いていいのかわかりません。 特にループさせるところがわかりません。 (初心者ですいません) プログラム例をご教授いただければありがたいです。 また、そういった内容を勉強できるサイトがあれば紹介していただけるとありがたいです。 よろしくお願いいたします。

  • txtファイルを連結して一つのファイルにする方法

    毎々お世話になっております。さうなまんです。 複数あるtxtファイルの中身を一つに連結して 一個のテキストファイルにするための DOSコマンドを探しております。 よく探したつもりですが、、、困っております。 毎回、フォルダ内のtxtを開いては印刷というのが 面倒でバッチファイルをつくりたいのです。 環境はWinXP proです。 お手数おかけしますが、なにとぞよろしくお願い いたします。

  • テキストファイルを連結するソフト

    複数のテキストファイルを連結するソフトを教えてください。 ただし連結部に「適度な改行」と「後ろのファイルのファイル名」を自動で入れる設定が出来るものをお願いします。 テキストA、B、C、を連結したら Aのファイル名 Aの内容 ・ ・ ・ Bのファイル名 Bの内容 ・ ・ ・ Cのファイル名 Cの内容 ・ ・ ・ という新たなテキストファイルを作成するという感じで。

  • アクセス フォームの非連結テキストに入力VBA

    win10 office365 access365におきまして フォーム Fを開いて そのなかの非連結テキスト textが あるとしまして そこに規定の文字列 たとえば、あいう を入れたいとき Sub Sample() Dim cn As ADODB.Connection Set cn = CurrentProject.Connection DoCmd.OpenForm "F", acNormal Form![F]!text1 = "あいう" end sub フォームFは当然開くのですが 非連結のテキスト textは 空白のままです ちなみに 通常の使い方は このテキスト text1の空欄に カーソルを合わせて 文字を打ち込んで行き 最後は 既製の保存ボタンをクリックすることにより 別テーブルに非連結テキストに入力した値を保存する流れになりますが、 この非連結テキストが複数ありまして テンプレートを作りたいので 上記のようなコードを 考えました すみませんが 不足しているポイントの 御教示宜しくお願い致します

  • テキストの保存で「*.txt」を"*"でない文字にしたい

    テキストの保存で「*.txt」を"*"でない文字にしたい テキストを保存する時に「*.txt」が名前としてあり、リネームしないと保存できません。 面倒なので「新しいファイル.txt」とでもしたいのですが出来ますでしょうか。 また保存場所に同名のファイルがある場合は「新しいファイル~コピー1.txt」 と言うような感じにしたいです。 windowsXP、使用するアプリはメモ帳です。(厳密にはメモ帳でないです)

  • ファイルの作成方法…

    VBでテキストファイルの中身を開くプログラムを作成しました。 そのテキストファイルの中身を変更(編集)し、それを同じファイルに上書き保存するのではなく、開いたファイルのある同じフォルダ内に新しいファイルを作り保存したいと思っています。  <例>test1.txtというファイルを開き中身を編集してそれを同じフォルダ内に新しくtest2.txtというファイルを作って保存するといった感じです。 そこで新しいファイル名で保存する(新しいファイルを作成する)方法を教えて欲しいんです、こんな説明で分かってもらえるか不安ですが…、どなたか分かる方教えていただけませんでしょうか? かなりの初心者なのですが、私でも理解できるようなプログラムだと嬉しいです。 よろしくお願いします。

  • テキスト(txt)→ワード(docx)へ変換ソフト

    テキスト(txt)→ワード(docx)へ変換ソフトはありませんか? ポメラを最近買ったのですが、保存形式がtxtで、パソコンに移した際にdocxとして管理したいです。 メモ帳の文章を全コピし空のワード文書に張り付けて保存すればよいですが、数が多くてめんどくさいです。 いくつかのファイルを一括して返還できればなお良しです。

  • perlを使って、CSVデータからテキストデータを作りたいです。

    perlを使って、CSVデータからテキストデータを作りたいです。 今、こういうCSVデータで、 ----------------------------------- ID     | アイテム  | 商品名 ----------------------------------- 1111    | AAAAAAAA  | aaaaaaaa ----------------------------------- 1111    | BBBBBBBB  | bbbbbbbb ----------------------------------- 1111    | CCCCCCCC  | cccccccc ----------------------------------- 2222    | AAAAAAAA  | aaaaaaaa ----------------------------------- 2222    | DDDDDDDD  | dddddddd こういうテキストファイルを作りたいです。 ファイル名 ⇒ 1111.txt ファイルの中身 ---------------------------------- ID:1111 【アイテム】 AAAAAAAA 【商品名】 aaaaaaaa 【アイテム】 BBBBBBBB 【商品名】 bbbbbbbbb 【アイテム】 CCCCCCCCC 【商品名】 ccccccccc ファイル名 ⇒ 2222.txt ファイルの中身 ---------------------------------- ID:2222 【アイテム】 AAAAAAAA 【商品名】 aaaaaaaa 【アイテム】 DDDDDDDDD 【商品名】 ddddddddd ---------------------------------- 同じIDだったら、そこだけのアイテム名・商品名が、 同じIDのテキストに入るようなことをやりたいです。 それぞれのファイル名で保存するところまでは出来たのですが、 こんな感じになってしまいます。。 ファイル名 ⇒ 1111.txt ファイルの中身 ---------------------------------- ID:1111 【アイテム】 AAAAAAAA 【商品名】 aaaaaaaa 【アイテム】 BBBBBBBB 【商品名】 bbbbbbbbb 【アイテム】 CCCCCCCCC 【商品名】 ccccccccc 【アイテム】 AAAAAAAA 【商品名】 aaaaaaaa 【アイテム】 DDDDDDDDD 【商品名】 ddddddddd ファイル名 ⇒ 2222.txt ファイルの中身 ---------------------------------- ID:2222 【アイテム】 AAAAAAAA 【商品名】 aaaaaaaa 【アイテム】 BBBBBBBB 【商品名】 bbbbbbbbb 【アイテム】 CCCCCCCCC 【商品名】 ccccccccc 【アイテム】 AAAAAAAA 【商品名】 aaaaaaaa 【アイテム】 DDDDDDDDD 【商品名】 ddddddddd ---------------------------------- どうしたら同じIDのファイルに、同じIDのアイテムと商品だけを 表示することが出来るようになるのでしょうか、、 すみませんが、どうぞ宜しくお願いいたします。

    • ベストアンサー
    • Perl