• ベストアンサー

文字列操作 : 複数ファイルから文字列の挿入・合体

こんにちは。linuxのシェルにおける文字列操作について、質問です。 二つのファイルがあり、それぞれ以下の文字列を含んでいます。 :firel1 port1 port2 port3 :file2 swtich HP server dell-pc これらの文字列を、それぞれ同列へ挿入(合体?)させたいのですが、何か方法はありますでしょうか?合体させた文字列を別ファイルへ出力する方法でもかまいません。 port1 swtich port2 HP server port3 dell-pc よろしくお願いいたします。

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

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.1

paste file1 file2 > outfile pasteコマンド ファイルを行ごとに結合する:Linuxコマンド http://xn--linux-op4dtfrgoh.com/01linux/080paste.html#more paste コマンドのマニュアル http://www.linux.or.jp/JM/html/gnumaniak/man1/paste.1.html 「"pasteコマンド" Linux」で検索 http://www.google.co.jp/search?q=%22paste%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%22+Linux&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_jaJP230

inter10
質問者

お礼

的確なありがとうございます。 pasteコマンドは知りませんでした。通常のLinuxならこれを使うところですが、 現在取り組んでいるマシンのコマンドはbusyboxベースのため、残念ながら pasteコマンドは入っていませんでした。。他になにかアイデアありますでしょうか?

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

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

2つのファイルの長さが同じという前提だけど while read -u 3 a; do read -u 4 b echo "$a" "$b" done 3< file1 4< file2 でいけるかもしれません. bash の機能だけで作ってみましたが, テストしてないので動作は無保証.

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

関連するQ&A

  • 複数の文字列を含むファイルの検索-linux

    linuxにおいてファイル内の文字列を検索するのにgrepを用いますが、 複数の文字列を含むファイルを検索するにはどうしたらよいでしょうか。 同じ行ではなく別の行にある場合で、ファイル名を出力したいです。 つまり ~~~~~~~~~ ~~~~~~~~文字列1  ~~~~~~~~~~ ~~~~~~~~ ~~~~~~~文字列2 のような記述のあるファイルを探すにはどうしたらよいでしょうか。

  • 文字列をSVGにしたい。

    文字列をSVGにしたいのですが、今の所私の知識ではイラストレータで文字を打って、SVGで書き出す方法しか思いつきません。 この一連の動作をlinuxサーバー上でPHPやシェルスクリプトで自動でおこないたいのですが、なんか方法ありますか?

  • XMLファイル内の情報からリストを作成

    こんにちは。教えてください。 ちなみに当方はサーバ管理者で、XML系はほとんどわかりません。 Linux上に保存されている、あるXMLファイルには以下の文字列が保存されています。 <port1> <flowcontrol>None</flowcontrol> <loglevel>0</loglevel> <label>test-PC</label> </port1> <port2> <flowcontrol>None</flowcontrol> <loglevel>0</loglevel> <label>HP server</label> </port2> <port3> <flowcontrol>None</flowcontrol> <loglevel>0</loglevel> <label>dell</label> </port3> これらを、perlやシェルコマンドで以下のように表示したいのですが方法がわかりません。なにかアイデアがありましたらお知らせいただけると大変助かります。 port1 test-PC port2 HP server port3 dell

    • ベストアンサー
    • XML
  • ファイルを文字列に変換

    ファイルを文字列に変換 ファイルを文字列に変換したいです。 文字しか送れないネットワークで、ファイルを文字列に変換し、その文字列を送り、受信機でファイルに変換する装置を作りたいです。 しかし、送り方&暗号化はわかったのですが、肝心のファイル⇔文字列(16進数などでも可)ができません。 LinuxをメインPCで使ってるので、Linuxで説明していただければ幸いです。 ファイルを文字列に変換するソフトとかありますか?

  • バッチファイルでファイル名に文字列を挿入したい。

    フォルダにあるファイル全てに対して、ファイル名の先頭に文字列を挿入するバッチファイルを作っています。 対象のファイルは、主にエクセル、ワード、パワーポイント、PDFですが、ファイルの種類に関係なく、全てのファイルに対して、ファイル名の先頭に文字列を挿入したいです。 @echo off for %%i in (*) do ren "%%i" "【文字列】%%i" pause として文字列の挿入自体はできました。 しかし、このファイルを2回実行すると、ファイル名の先頭に【文字列】【文字列】と重複して挿入されてしまうので、すでに挿入済みのファイルに対しては実行しないようにしたいのですが、うまくいきません。 また、サブフォルダ内にあるファイルに対しても同様の処理を適用したいです。 どのように記述すればよいでしょうか。 リネームソフトを使えればよいのですが、フリーソフト等はインストールできない環境ですので、できればバッチファイルを記述して対応したいのです。 OSはウインドウズ7です。

  • ファイルの途中に文字列を挿入

    こんにちは。プログラミング初心者で、初めて質問させていただきます。勉強中に思ったのですが、 ファイルの書き込みについてなのですが、あるファイルに既にデータがあり、その先頭部分(あるいは途中)にある文字列を追加挿入しなければならなくなった場合どういった処理をすることになるのでしょうが? fseekなどで場所を指定して書き込んでしまうと、そこの文字列が上書きされてしまうと思うのですが。

  • 文字列の操作

    こんにちは。 以下のような、文字列があるとします。 NUMBER1(ヌル\0)からNUMBER1000(ヌル\0)までの文字列があるとします。 NUMBERは付属で、ほしい文字列が1から1000までNUMBERの次にある場合、1から1000までを取得する方法として、 Buf[100] int x=0; while(Buf[x]!='\0') //ナル文字までの長さを取得 x++; memmove(&Buf[0],Buf[x-1],4); //NUMBER1の場合、長さは7。しかしほしい文字列は第6要素なのでx-1。 しかし・・・これを行うと、 NUMBER10:長さ8 NUMBER100:長さ9 ・ ・ となり、二桁以上の場合は、memmove(&Buf[0],Buf[x-2],4)と、 第2引数を手動で可変しなければなりません。 そこで、NUMBER\01\0 NUMBER\01000\0というように、 NUMBERの次にヌル文字(あってますでしょうか?)\0を挿入し、次の要素に1から1000まで文字列を挿入。そして文字列終端が分かるように再度\0を挿入します。 しかしこのような場合、ヌルを2つ挿入することで、上記に示したプログラムでは、手前の\0までしか長さを取得しないので、うまくいきません。 そこで、文字列の区切りを示すための方法として、なにかありますでしょうか? 文字列は最後に、\0を挿入することで判別すると書いてありますが、 NUMBERVISUALC++\0というような文字列を配列に格納してある場合、 NUMBERとVISUALC++をどのように分けて取得するのでしょうか? それとも、第6要素から取得した文字列があると言う事が分かっている場合、第6要素からを指定するプログラムを作るということになるのでしょうか? よろしくお願いします。

  • 特定の文字列を挿入

    テーブルのセルに特定の文字列を挿入する方法は御座いませんか? 例えば、 HTMLファイル <html> <head> </head> <body> <table> <tr><td> (1) </td><td> (2) </td></tr> <tr><td> (3) </td><td> (4) </td></tr> </table> </body> </html> とあった場合 JavaScriptファルには (1)に挿入する内容 (2)に挿入する内容 (3)に挿入する内容 (4)に挿入する内容 を書いてHTMLファイルに書き出しをしたいのです。 document.write('');を使って書き出す方法は知っていますが、指定した場所に貼り付けたい場合複数ファイルが必要になりますよね? それでは不便なので、JavaScriptファルは外部化で1つのファイルにし、指定箇所に文字列を挿入する方法を教えてください。 printを使えばいいんでしょうか?

  • シェルスクリプトを用いて、ある特定の文字列の前に文字列を挿入

    こんにちは。 シェルスクリプトを用いて、ある特定の文字列の前に文字列を挿入したいと思います。 ・sample.txt (挿入前) -- <ABC> <ABC> Hello! </ABC> </ABC> -- ↓ ・sample.txt (挿入後) -- <ABC> <ABC> Hello! </ABC> Good Morning Good Evening </ABC> -- 上記のように、テキスト末尾から検索して、 はじめて表れた"</ABC>"のタグの前に、 Good Morning Good Evening という2行の文字列(無理なら1行でも)を追加したいと考えています。 "</ABC>"タグは2つありますが、末尾から検索して初めて表れたもののみ対象です。 このような操作を行うには、 どのようにシェルを組み合わせれば良いのでしょうか? grepやsedを用いて考えてはいますが、よく分かりません。 (grepで末尾から初めて表れた"</ABC>"の行番号を取得し、 その上に、sedで文字列を挿入するなどですが・・・よく分かりません) どなたか、よろしくお願いします。

  • word2007で文字列を一発で挿入できる方法について教えて下さい。

    word2007で文字列を一発で挿入できる方法について教えて下さい。 フォルダ内にいくつものファイルがあるとします。ビジネス文書を作成するにあたり、発信者を全ファイルに何度も入力するのは手間がかかります。一つのファイルに文字を入力すれば他のファイルもすべて同じように文字列が挿入できる方法はありますか? 大元のファイルが更新されたら、他のファイルも同じように更新されるというイメージなのですが・・・・。わかる方おられましたら宜しくお願い致します。wordではそういう機能はないようでしたら、EXCELではできないでしょうか?