• ベストアンサー

ファイル内容抜き出しに付いて教えてください。

お世話になっております。 solarisでシェルを作成したいのですが。 ある文だけを抜き出したいと思っています。 例: ファイル名:test.txt 1############## 2# test test # 3############## 4aaaaaaabbbbbbb ←このファイル内の4行目と5行目だけを他のファイルにコピーしたい 5cccccccddddddd 4行目と5行目だけを他のファイルにコピーしたいのですが可能でしょうか? ご教授願います。

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

  • ベストアンサー
  • pon_kotu
  • ベストアンサー率21% (8/38)
回答No.1

こんにちは、 標準で sed が入っていると思いますので sed -n '4,5p' > コピーしたいファイル で、できますよ。

kakeru_333
質問者

お礼

sedと言うコマンドを始めて知りました。 ありがとう御座います。参考にさせていただきます。

その他の回答 (1)

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

#1さんの回答に有るようにsedを使うのが良いように思います。 (応用も利きますし) 別の手としては headとtailを組み合わせて head -5 <test.txt | tail -2 >output.file みたいな事も可能かと思います。 (最初のheadでtest.txtの頭5行を抜き出して、次のtailでそのうちの後2行(=最初のファイルの4,5行)を抜き出すと)

kakeru_333
質問者

お礼

ありがとう御座います。大変参考になりました。 勉強をします。

関連するQ&A

  • grepによる文字列検索のシェル作成の手順

    Solaris9のOSにて、以下の仕様のシェルを作成したいと思っています。 特定のディレクトリ配下にある全てのファイル内で特定の文字列「abc」のある行を抽出し、ファイル化したい。 (検索対象が1ファイルであれば、grep -n abc test.txtでよいですが、ファイル名がたくさんある場合のシェルの作り方がわかりません。) また、どのファイルから検索したのかがわかるように抽出した行の前にファイル名をつけられると大変助かります。 例) ---test1.txtから検索--- 8:XXXXabcXXXX 11:XXXXabcXXX ---test2.txtから検索--- 10:XXXXXXXXabcXX お手数ですが、宜しくお願いします。

  • あるファイル内容をまとめるシェルについて

    お世話になっております。 あるファイル内容を1つのファイルにまとめて出力する方法はあるのでしょうか? 例: ファイル名:TEST1 aaaa ファイル名:TEST2 bbbb ファイル名:TEST3 cccc 上記ファイルをtest001に出力する。 ファイル名:tast001 aaaa bbbb cccc とこのようなシェルは可能でしょうか? ご教授願います。

  • ファイルリストに含まれるファイルだけをtarでまとめる方法

    filelist.txtというファイルにtarでまとめたいのですが、どういったシェルを作ればいいのかご教授ください。 filelist.txtを上から順に1行ずつ読んでいって、1行目の場合のみtarファイルを新規作成(cvf)して、2行目からはファイルを追加していく(rvf)という方法でやりたいのですが、シェルの書き方がわかりません。 どうぞよろしくお願い致します。

  • シェル ディレクトリ内検索について

    お世話になっております。 solarisでシェル作成に辺り教えてください。 あるディレクトリの新しいファイルから3つ目の ファイルを移動(mv)したいと考えているのですが 良い方法は無いでしょうか? 例 testディレクトリ内 ファイル.txt.051025 ファイル.txt.051024 ファイル.txt.051023  ←このファイルをmv処理 ファイル.txt.051022 ファイル.txt.051021 ファイル.txt.051020 ディレクトリ内のタイムスタンプで最も新しいファイルから3つ目を移動させたい場合は、どの様にしたら良いでしょうか?方法はあるのでしょうか? お願いします。

  • シェルスクリプト while read lineにつきまして

    シェルスクリプトについて、各行の値を使って、更新したいと考えています。 引数を2つ持たせて、2つともファイルです。 ファイル名1には、 test1 test2 test3 のディレクトリを記載し、 ファイル名2には、 test4.txt test5.txt test6.txt のテキストを記載します。 例) 引数1 ファイル名1 引数2 ファイル名2 while read lineをどのように使ったら良いかわからないのですが、 ファイル名1を1行ずつ読み込んで、 読み込んだディレクトリをファイル名2に書かれているテキストを更新します。 具体的にやりたいと思っている内容ですが、 ・cd ファイル名1の1行目ディレクトリ ・svn up ファイル名2のテキスト ここをファイル名2に書かれている行分ループして 上記svn upコマンドを実行します。 ・ファイル名2に書かれている行分ループ完了後、 ファイル名1の2行目にかかれているディレクトリを読み込んで、 cd ファイル名1の2行目ディレクトリ ・svn up ファイル名2のテキスト ここをファイル名2に書かれている行分ループ。 という形のシェルスクリプトを作成したいと思っています。 上手く説明できないのですが、このようなことが出来るのかお教えいただけますでしょうか。 出来るのであれば、どのようにすればできるのかご教授いただけると幸いです。 宜しくお願い致します。

  • バッチファイル 指定ファイル

    お世話様です。 あるバッチファイルの作成に困っております。 『D:\test』フォルダに下記の3ファイルがあります。 ・CS_090609.txt ・CS_090603.txt ・CS_081215.txt があり、数字の部分は作成された日を表しております。 上記ファイルだと、上から2009/6/5・2009/6/3・2008/12/15に 作成されているとします。 今年の6月9日にあるバッチファイルでCS_090609.txtをそのまま残し それ以外のCS_090603.txt・CS_081215.txtをいったん『D:\test\bkp』フォルダに コピーし、その後、『D:\test』フォルダにある090603.txt・CS_081215.txtを削除 する処理を実施したいのですが、どうもうまく作成出来ません。 せいぜい自分のスキルでは、CS_*.txtですべてのファイルを『D:\test\bkp』にコピーし、 その後、『D:\test』フォルダにあるすべてのファイルの削除しかできません。 お手数ですが、何かご教授願いますでしょうか? ※サンプルコードがあると、助かります。 何卒宜しくお願い致します。

  • ファイル名の抜き出しについて

    いつもお世話になります。 ファイルアップロードし、アップロードしたファイル名を記録するプログラムを 作成しております。(ファイル名を記録し、別プログラムでファイル名にリンクを張ります。) この中でアップロードファイル名がc:\temp\cgi\test.cgiやc:\mydocument\test\temp\cgi\test.cgiと いったものも含め実ファイル名(test.cgi)のみを抜きだして記録したいのですが、上手くいきません。 ファイル名を切り出す方法を教えていただきましたが、こちらも上手くいきませんでした。 $inLink =~ s/^.*[\\\/]//;と記述。 どなたかご教示お願いいたします。

    • ベストアンサー
    • CGI
  • grepコマンドを使ったシェルについて

    いつもお世話になっております。 今回は、以下の仕様なシェルを作りたいのですが、お力をお貸しください。 ファイルからある文字列(xxx)を含んだ1文を抽出します。しかしこの1文の1段上に時間が表示されているのですが、この時間も一緒に持って期待と思っています。該当文字列は膨大にあるので時間帯で分けたいと思います。 例: ファイル名:TEST.txt yyyy/mm/dd 00:00:00          ←時間帯も抽出したい AAAAAAA BBBBBBBBBBBBB CCCCC xxx DDDD ←この一文を他のファイルにコピーします。 grep xxx TEST.txt > TEST.log 上記の該当文字列の1段上の時間帯も引っ張りたいのですがどの様にすればよいでしょうか? 宜しくお願い致します。

  • ファイルを行ごとに比較するシェルスクリプトについて

    ファイルを行ごとに比較するシェルスクリプトをご教授ください。 例えば(master.txt)(a.txt)(b.txt)(c.txt)(ok.txt)(ng.txt)と4つのファイルがあり、 (master.txt)と(a.txt)の行を比較し(a.txt)の中のある行が(master.txt)の行と一致した場合(ok.txt)に (master.txt)の行と一致しなかった場合(ng.txt)に入れる。 その後(master.txt)と(b.txt)の比較し(a.txt)が使用したものと同じ(ok.txt)or(ng.txt)に入れる・・・ といったように繰り返していくシェルスクリプトはどのようにして作成するのでしょうか? txtファイルの中の行はランダムに入っており、x.txtの一行一行ををmaster.txtの全行と比較する必要があります。 自分で作ってみたものは、while文を2重で使い一行ずつ取り出しcase文で行が一致した物を(ok.txt)に入れる 所までは成功しているのですが、複数回繰り返す時にどのようなロジックで不一致行を(ng.txt)に入れる ことができるのかが考え付きませんでした。 よろしくお願いいたします。

  • ファイル内の改行を削除し1行にするシェル

    お世話になっております。 ファイル(テキスト)内には、改行を含んだ複数の行が記述されています。 これを1行にして上書き保存するシェルを実行をするための シェルを作成したいと思っています。 ファイル内には以下のような値が改行を含んで入っています。 123 456 789 →これを、「123456789」と改行を取り除き、既存のファイルの上書き保存をしたい なお、改行を含んだ対象のファイルは、ファイル名にある文字を含む ファイルのみに対して行いたいのですが。 例:ファイル名に、「*abc*」、「*def*」、「*xyz*」を含むファイルが対象 改行を取り除くコマンドはわかるのですが、シェルにするプロセスがわかりません。 cat 入力ファイル名 | tr -d '\n' > 変換後の出力ファイル名 ご教授いただきたく、よろしくお願いします。