• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スクリプトについて教えてください。)

スクリプトの書き方-ファイルの読み書き方法

a-kumaの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> データの説明をもうちょっとしますと。。。 あるデータの固まりは、空白行で終わる、と考えていいのでしょうか? であれば、こんな感じ。 BEGIN { out = "" } /決った文字列1/ { out = "出力ファイル1"; next } /決った文字列2/ { out = "出力ファイル2"; next } /決った文字列3/ { out = "出力ファイル3"; next } /^$/ { out = "" } out != "" { print > out } > 空白行の削除などは、空白行がみつかったら最初の一行しか消さないのでしょうか? ちょっと質問の意図が分かりません。この回答のスクリプトでは、空白行が出た 時点で、そのデータの固まりを終了とみなして出力を一旦中止します。 つまり、出力ファイルには空白行は出力されません。 > タブをスペースに変換についても同じなのでしょうか? こちらも意図がよくわから無いんですが、入力ファイルのタブを出力ファイルに 出す時点でスペースに変換したい、ということでしょうか? awk のスクリプトで書くと、ちょっと大変かも。行頭のタブだけだったら、簡単 なんですけどね。 タブ→スペース変換のコマンドがある(はず)ので、それを使うのが簡単かも。 例えば、file1 のタブを4桁区切りでスペースに変換して file2 にするには、 こんな感じ。 % expand -4 file1 > file2

chibitotoro
質問者

補足

ほんっとにありがとうございます。 何度も何度も。。。説明もままならず。。。 ファイルの中身なのですが、 page1          ←正確にはこの部分には日付なども書かれている               これも削除したい(1) 決まった文字列 データ1 データ・・・  ← データとデータの横間隔がタブで区切られている :              これをスペースに変換したい(2) : ←数行の空白行 これを削除したい page2 ファイル内で改ページしてるようでpage数が表示               これも削除したい(3) データ1 データ・・・ :  :               ←ここまでがデータ1                 ここまでをファイル1に出力したい page1 データ2 データ・・・ : : : page2 データ2            ←ここまでをファイル2に出力 page1 データ3 データ・・・ ←ここからファイル3へ (1)について sedコマンドを使って削除しようと試みたのですがpage1の行だけで、page2以降が削除されません。sed -e "/Page/d" filename (3)の空白行についてもsedコマンドを試みたのですが最初の空白行しか削除されません sed -e `/^[<space><tab>]*$/d` filename 説明が下手なのでうまく伝わったか不安ですが、 なにか他にアドバイスがありましたらお願いします。 自分なりにも調べ、試してみます。

関連するQ&A

  • UNIXのシェルスクリプト

    UNIXのシェルスクリプトで以下のようなことをやりたいのですがいい方法を教えて下さい。 ファイルの中にある文字列があります。 たとえば”CURREND_DIR” この文字列をシェルスクリプトでカレントのディレクトリパスに変換したいのですが いい方法が思いつきません。 set dir_data = ‘pwd‘ sed -e ’s/CURRENT_DIR/$dir_data’ ファイル名 でできるかなと思ったのですが、”CURRENT_DIR”が”$dir_data”に置換されてしまいます。 さらにdirパスが”/”で区切られていることも問題のようです。

  • XPのPC上で簡単な動作をするスクリプトをつくりたい

    XPのPC上で簡単な動作をするスクリプトをつくりたいと思っているのですが、 たとえば、 この文字列があったら、このフォルダに移動する。 このフォルダ以下に以下のフォルダを作成する。 ファイルの中身からリストを作成するなど。 プログラミングの知識(VB,JAVA,VBA)はあるので、 そのようなバッチファイル、スクリプトみたいなのを作りたいのですが、どのプログラムがお勧めでしょうか? 自分でしらべたかんじでは、VBスクリプトがよさそうなのですが・・・ おすすめなプログラムあったら教えて下さい。 また、そのプログラムの解説などが掲載されているページが あったら教えて下さい。

  • ファイルのパージについて

    ちょっと教えてほしいんですが・・・ HP-UXでファイルの中に書いているデータを0バイトにしたいのです。 例えば、 testっていうログファイルに100行のデータが書かれている場合、そのtestというログファイルを削除せずに、中身だけを消したいのです。 どなたか、いいやり方を知っている方、教えてください。

  • 手動でログオンスクリプトを動かしたい

    NTドメイン上のログオンスクリプトを手動で動かしたいのですが、方法がわかりません。 WindowsXPでネットワークに接続していない状態でログオンした場合、その後にネットワークに接続してもログオンスクリプトが動かないので、再度ログオンのやり直しで対処したり、ログオンスクリプトと同じ中身のバッチファイルを作って動かしたりしています。 NTドメイン上のログオンスクリプトを手動で動かす方法を教えてください。

  • 外部スクリプトとスタイルシート

    とある質問にあったHPのソースを見たところ外部にJavaScriptとスタイルシートのファイルを置いて そこからリンクしているみたいでした。 そして外部ファイルをローカル(パソコン)にダウンロードして中身を メモ帳で見たのですが↑などの変な記号でぎっしりにつまっていました。 スタイルシートのほうは@もありました(@importなど) 文字化けのように見えるのですがこれは文法(スクリプト)としては正しいのでしょうか? 直接ソースに書いてあるようにスクリプトを見るにはどうしたらいいでしょうか? ちなみにここのHPです http://www.blogger.com/start

    • ベストアンサー
    • HTML
  • シェルスクリプトで

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

  • テキストファイル内の(から)の取り出し

    テキストファイルの中の”(”から”)”までの中身をとりだしたい のですが言い方法が思いつきません。どのようにすればいいでしょうか? OSはSolarisまたはLinuxです。 ”(”の中は”(”が何重かネストしています。 手段は特に問わないのですが、今後のメンテを考慮すると awkかperlのスクリプトで実現できればありがたいでです。 イメージとしては ファイルAの中 文字列1( (・・) (・・) ) 文字列2( (・・) (・・) ) をA.文字列1、A.文字列2で出力できればと思います。

  • VIVI(エディタ)のスクリプトについて

    OS:WindowsVista Ultimate SP1 viviバージョン:2.0375 Excelバージョン:2003 SP3 仕事でviviエディタを使用しているものです。 宜しくお願いします(viviは全くの初心者です・・・) あるフォルダ内のファイル群からgrepを使用して出た結果をCSVで保存します。 その一連作業を検索文字列だけ変えて数十回ほど繰り返し作業しています。 そこでgrepで使用する検索文字列をExcelVBAで収集し文字列操作で viviのスクリプトを作成してはき出されたスクリプトファイルで一気にgrepを 行うと同時に保存できないかと考えております。 そこで以下の条件を満たしたスクリプトを記述する場合どのように記述するか教えて下さい。  (1)検索文字列、ファイル種別(*.*)、ディレクトリを指定した状態でのgrep   (他はデフォルトです。)  (2)grep終了後、検索文字列で保存(csv形式) ExcelVBAの部分は大体出来たのですがスクリプトが全くわかりません。 サイトで色々調べたのですが、見つからず(分からないだけかも)困っている状態です。 すいませんがgrep-保存する場合のスクリプト内容を教えていただけないでしょうか。 宜しくお願い致します。

  • Apple Script の文字列中に『”』を使う

    Apple Script の文字列のなかに、ダブルクオート「"」を含めるにはどうしたらよいのでしょうか? 例: set TEST_TEXT to ”文字列" の、文字列にダブルクオートを入れたいのです。

    • ベストアンサー
    • Mac
  • 特定ファイル名を抽出し、移動するスクリプト

    質問させていただきます。 スクリプトと同階層にaaaというディレクトリがあります。 そのディレクトリをオープンし、ファイル名の中にbbbbという文字列があるものだけをcccというディレクトリへ移動するスクリプトはどんな感じになるでしょうか? お時間のあるときで結構なのでご教授願います。

    • ベストアンサー
    • PHP