• ベストアンサー

シェルスクリプトについて

シェルスクリプトについて教えてください このようなテキストファイルがあるとします。 .1 あ い う え お .2 か き く け こ .3 さ し す せ そ このファイルを「.」で区切ってそれぞれのファイルに分割するには どうすればいいのでしょうか? 結果として、 .1 あ い う え お と言うファイルや .2 か き く け こ と言うファイルに分けたいのです。

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

  • ベストアンサー
  • kochory
  • ベストアンサー率45% (167/370)
回答No.2

例えばですね・・・ while(<>){ if($_ =~ /^\./){print "\n"}; print $_; } これだけのスクリプトで、標準入力からテキストを読み込んで、 .で始まる行の前に空行を入れて標準出力に吐き出してくれます。 if文の部分をいじればそれぞれ別のファイルに出力するように 簡単に改造できます。 perlの使い方については入門サイトが多数あるので 参考にしてみてください。

参考URL:
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2004-04,GGLD:ja&q=perl+%E5%85%A5%E9%96%80
_ceravi_
質問者

お礼

ありがとうございます。 ちょっとがんばってみます。

その他の回答 (1)

  • kochory
  • ベストアンサー率45% (167/370)
回答No.1

シェルじゃなくてperlを使えばあっという間に出来ると思いますが・・・

_ceravi_
質問者

補足

ありがとうございます。 perlの方が文字列操作に長けているのは知っているんですが、 なにせperlはまるっきり触ったことが無かったので・・・ そこで、シェルなら少しは分かるのでヒントでももらえれば良いかな? と思いまして書き込ませていただいた次第です。 perlでも構いませんので、こうヒントだけでもいただけませんか?

関連するQ&A

  • シェルスクリプトで

    いくつかのテキストファイルがあって, その中で内容が重複するもの(ファイル名は違うが中身は同じ)ファイルをみつけるシェルスクリプトが書きたいのですが, どのように書けばよいでしょうか. というかそのように書くことは可能でしょうか. ぶしつけですいませんが,回答お願いいたします.

  • シェルスクリプトに関する質問です

    シェルスクリプトに関する質問です 以下のようなシェルスクリプトを書きたいのですが,難しくて出来無いのでどなたか ご協力お願いします。 foldaという名前のフォルダの中に1~100のフォルダがある. それら100個のフォルダの中に,それぞれfile.txtというテキストファイルがあり,これには 112.73 のように小数点ありの数字が1行書かれている. このfile.txtの内容を全て読み取って,それら100個分のデータを 1つのファイルに出力するスクリプト スクリプトファイルはfoldaの中にあるものとする. よろしくお願いします.

  • 簡単なシェルスクリプトを見てください。

    次のようなシェルスクリプトを作成しました。 #!/bin/sh echo [$1] awk '/"0312345678"/ {print}' /test > /test1 awk '/$1/ {print}' /test > /test2 のように簡単なスクリプトです。 $ sample \"0312345678\" で実行させたら、echo では"0312345678"に出力されます。 しかし、test1にはちゃんと結果が入っていますが、test2は空のファイルです。 なぜ、結果が違うのですか? 実行時、引数を渡す方法で、test1と同じ結果を得たければ、どうすればいいのですか?

  • シェルスクリプトについて

    シェルスクリプトについて Linuxで先頭にスペースが入っている行をひとつ上の行につなげたいと考えています。 その場合、シェルスクリプトはどのように書けばよいかご教示願います。 【ファイル内容】 aaa △bbb ccc ddd (b行の先頭のみスペース(△)が入っています。) 【変換後のファイル】 aaa bbb ccc ddd

  • シェルスクリプトの引数

    シェルスクリプトの引数 linuxのシェルスクリプトの引数に関しての質問です。引数の数が一桁くらいならいいのですが、200万個の引数を使うとなると、いちいち引数を手で書くわけにはいきません。引数をテキストから直接読み込むことはできませんか?

  • Javaの出力とシェルスクリプトの書き方

    Javaとシェルスクリプト初心者です. macをしようしています. ちょっと混乱しているのでわかりにくいしつもんかもしれませんが, よろしくおねがいします. Javaでテキストファイルから a,b,c (それぞれ整数) のような形でコンソールに出力するようなプログラムを書いたのですが, これを99個のファイル(01.txt ~ 99.txt)に適用して, 1,a1,b1,c1 2,a2,b2,c2 . . 99,a99,b99,c99 という形のテキストファイルを出力するような シェルスクリプトを書きたいのですが, どのようにすればよいでしょうか. Javaかどうかはこの際関係ないかもしれないのですが, とりあえず,Javaの出力を多くのファイルに適用して, ひとまとめにしたテキストファイルを作りたい,という意図です.

    • ベストアンサー
    • Java
  • シェルスクリプトをバックグラウンドで

    いつもお世話になってます 初歩的な質問かもしれませんが、自力で解決できなかったのでお力をお貸しください 2点質問があります、シェルはbashです 1 シェルスクリプトを記述したファイルをダブルクリックで使っています このファイルをダブルクリックした時にターミナルを表示させないでシェルスクリプトだけ実行する事はできないでしょうか? 2 シェルスクリプト終了後、ターミナルが閉じません、スクリプト終了と同時にターミナルを閉じる方法を教えてください [プロセスが完了しました]というメッセージが出てターミナルそのものが閉じません よろしくお願いいたします

  • シェルスクリプトでランダム

    シェルスクリプトでランダムな結果を得たい場合はどうすればいいでしょうか。

  • 複数ファイルを1つにするシェルスクリプト

    file.1 file.2 ..... file.xx とxxが連番になっている複数のテキストファイルがあります。 これを1つのファイル"file.all"にするために以下のシェルスクリプトを作ってみました。 (公開するのも恥ずかしいのですが...^ ^;) #!/bin/sh i=1 while [ $i -le 99 ]; do  cat file.$i >> file.all  let i=i+1 done これだと99までのファイルしか指定できません。 99999...とループ回数を増やせばいいのですが、 それよりももっとスマートにやる方法があるのではと思い質問を投稿いたしました。 シェルスクリプトではなくコマンドによる方法でも結構です。 (RH7.3を使っています) よろしくお願いします。

  • シェルスクリプトの作り方

    OSはVineで、bashシェルです。 シェルスクリプトの作り方ですが、 1.ファイルを作る。 例えば、 #!bin/sh cd tmp このとき、ディレクトリはどこでもいいのでしょうか? 2.権限を付ける。 chmod u+x filename 3.実行 ./filename 他に気をつけることはないでしょうか? 実行すると、 bash: ./filename: bad interpreter: そのようなファイルやディレクトリはありません となってしまって、どうしても実行できません。