• ベストアンサー

テキストファイルのn行目以下を出力する方法

catコマンドか他のコマンドを使って、テキストファイルのn行目以下を出力する方法はありますか?

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

  • ベストアンサー
回答No.5

蛇足っぽいですが、sedによる別解です。 (3行目以降の場合) >sed -ne '3,$p' input.txt

sasmostmilk
質問者

お礼

これで簡単に出来ました!ありがとうございます。

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

その他の回答 (4)

  • taka37777
  • ベストアンサー率30% (166/544)
回答No.4

tailコマンドを使ってはどうでしょうか? tail -n +行数 ファイル名になります。 ファイルは下記のようになっている。 $ cat a.txt 1 2 3 4 5 6 7 8 9 10 3行目以降のテキストが表示される $ tail -n +3 a.txt 3 4 5 6 7 8 9 10

sasmostmilk
質問者

お礼

ありがとうございます。参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.3

行数が判っていれば…tailコマンドのnオプションで「後ろから何行」って感じで出せます。 行数不明だと…wc -lでの行数カウントとexpr コマンドでの演算との組み合わせ…でしょうかね? 他にも方法ありそうですが。

sasmostmilk
質問者

お礼

ありがとうございます。参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.2

例えば tail -n +10 textfile で、textfile の 10行目以下が表示されます。

sasmostmilk
質問者

お礼

ありがとうございます。参考にさせていただきます。

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

awkスクリプトを使用してはどうでしょうか? http://www.geocities.jp/geo_sunisland/awk.html のTextreader.shを参考に改変すればN行目以降のみ表示は可能かと思います。

sasmostmilk
質問者

お礼

ありがとうございます。参考にさせていただきます。

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

関連するQ&A

  • コマンドの出力結果をn行おきに出力する方法

    コマンドの出力結果をn行おきに出力する、出来るだけシンプルな方法を知りたいです。 例えば、あるファイルの中身をgrepで絞込み、かつそれを5行ごとに出力させる等。 シェルの種類は問いません。 宜しくお願い致します。

  • ファイルから1行または複数行を標準出力する方法

    ものすごく簡単な問題のような気がしますが,わかりません. コマンドで,テキストファイルから1行または複数行を標準出力する方法はありませんでしょうか? 例えば,foo.txt の10行目を出力 > line 10 foo.txt あるいは,複数のコマンドをパイプをかませて実現する方法でもかまいません. スクリプト言語すら使わないで実現できるような気がするのですが思いつきませんでした. よろしくお願いします.

  • ファイルから特定の行を出力したい

    あるファイルの特定の一行だけを取りだすunixの コマンドを教えて下さい。 具体的には cat a.txt 1gyoume 3gyoume 4gyoume 5gyoume 6gyoume 7gyoume 8gyoume といったファイルの末尾からX行目の内容を変数に入れたいのです。 a.txtが8行あると判断して8-X行目でファイルを分割、そのファイル をtailコマンドで末尾1行目だけ出力すると出来そうだと思ってい るのですがもっと簡単な方法はないでしょうか。

  • テキストファイルから最終行の抽出

    テキストファイルに出力された内容のうち、 最終行のみ抽出し、他のテキストファイルに 落とし込みたいと考えています。 DOSコマンドを使用して実現したいと思うのですが 良い方法などございましたら、ご教授ください。 宜しくお願い致します。 ※OSはWindows Server 2003を使用しています。

  • LinuxのtopコマンドでLoad Avgの行のみをテキスト出力方法

    LinuxのtopコマンドでLoad Avgの行のみをテキスト出力方法はありますか? 環境はMac miniで カーネルはDarwin Kernel Version 10.4.0 です。 FedoraやUbuntuなどとはコマンドのオプションや表示のされ方が違うみたいなので、 top -n 1 でコマンドを終わらせることが出来ず困っています。 他のLinuxでは top -n 1 | grep Cpu >> output.txt のようにしてCPUの状態を残すようなシェルを使ってCPUの状態をログ化していました。 ご教示願います。

  • 1行がやたら長いテキストをバッチ・コマンドから操る

    こんにちは。 batファイル、コマンドプロンプトからファイルを操作するとき、1行がやたらと長いファイルが扱えなくて困っています。 びっしりとタグが書かれたテキストファイルなのですが、このファイルの中の /> を >\n (「\n」は改行)として事前に置き換え処理をすることはできるのでしょうか。改行を入れてやれば、後処理でループするときに楽になるのですが。 もしくは、1行が異常に長くても処理できる方法などあるでしょうか? for /f を使うと正しく反応してくれません。1行でメガ単位あるテキストなんですが・・・

  • 多数あるファイル(text base)の*行目だけを引っ張ってきて標準出力させたい。

    Unix初心者です。 SunOS > head -1 ./*.txt とすれば、以下のように1行目だけを引っ張ってきて標準出力させる事も可能ですが。 ==> 1234.txt <== hello ==> 1235.txt <== hello SunOS > head -2 ./*.txt とすると、1行目と2行目が標準出力されます。 ==> 1234.txt <== hello bye ==> 1235.txt <== hello bye ですが、以下に例をあげますが、このように " 2行目だけ " を標準出力させたいのです。 ==> 1234.txt <== bye ==> 1235.txt <== bye sed -n '2p' ./*.txt だと、理由は不明ですが一つのファイルしか標準出力されませんでした。 head 、sed でなくともawk grepでも構いません。 その他の自分の知らないコマンドで構いません。 文字検索ではなく、*行目と行数指定です。 できれば、ファイル名も同時に出力させたいのです。 欲を言えば、行数も出力させたいです。 更に、翌を言えば、指定行を増やせたら最高です。 例;)1行目と3行目を標準出力する。 scriptを作りこまずに、|(パイプ)でつなげれば一行のコマンドで処理可能なのでは ないかと想像してますが、いかがでしょうか。 宜しく頼みます。

  • sedを使って複数ファイルの先頭行を表示

    以下の様なファイルがあります。 各ファイルの先頭行をとりだしたいのですが、headコマンドを使うと ファイル名と結果が分かれて表示されます。 sedで、-nオプションの行番号指定で表示することができるので、 sed -n '1p' *.txt のワイルドカード指定でやったのですが、 この場合だと複数ファイルとみてくれなくて、すべてのファイルを ひとつにしてその先頭を表示しているみたいです。 できれば、各ファイル毎に、ファイル名と結果を1行にして表示したい のですが、どうすればよいでしょうか。 参照ファイル cat 1.txt 12345 67890 cat 2.txt abcde fghij cat 3.txt 11111 22222 headコマンドで実行 $ head -n 1 *.txt ==> 1.txt <== 12345 ==> 2.txt <== abcde ==> 3.txt <== 11111 sedで実行 $ sed -n '1p' *.txt 12345

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • テキストファイルの行抽出

    linux環境のプログラムについて質問です。 ある特定のファイル(テキストファイル)内のデータで 指定の行を抽出する方法を教えていただきたいと思います。 現在はawkを使用してbashスクリプト内で下記のように head, tailを使用していますが、処理が重いように 感じます。perlまたはawkなどで行抽出の軽い処理は できないでしょうか? (他のunixコマンドでも結構です。) ---------------------------------------- RNUM=`awk 'END{print NR}' $1` #行番号取得 for iwl in `seq 1 $RNUM`;do BASE=`head -n $iwl $1 | tail -n 1` done #iwl ---------------------------------------- Fortran, Cなども使えますが、色々組み合わせて使う上で bash内のスクリプトで行ないたいと思います。