• ベストアンサー

test.htm の133048行目だけを削除したい

a-kumaの回答

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

> 次に、コマンドラインで実施させる書き方を知りたくなりました 了解、Windowsなんですね。Windowsのシェルはシングルクォートを 理解してくれません。なので、 > c:\>cat test.html | gawk ' NR != 133048 { print } ' は、ダブルクォートに変えて、 c:\>cat test.html | gawk " NR != 133048 { print } " で OK です。 私も、unix と Windows を行ったり来たりしてますので、 良く間違えます (^^;

finetoothcomb
質問者

お礼

成功しました!ありがとうございました!!

finetoothcomb
質問者

補足

皆さんこのたびは各種の方法を教えてくださり、ありがとうございました!他にも簡単な あるいは、おもしろいやり方が、あったらご教示いただけたら幸いです.

関連するQ&A

  • awkで特定の範囲の行を削除したい

    awkなどの使い方がよくわからないので教えてください。 あるテキストファイル中の、"del_start" という文字が入った行から"del_end" という文字が入った行までの全ての行を削除したファイルを作るシェルを作成したいと思っています。 awk(やsed、grep、cat ?)などを使って実現するにはどうすればいいのでしょうか? よろしくお願いします。

  • 3行ずつ足す

    AWK を使っていあのですが、perl への移行を目指して勉強しています。 (1) 行数が3の倍数 (2) 列数は分からない(スペース区切り。固定列数) (3) # はコメント行 というデータがあります。 このデータを perl に読み込ませて、  三行ずつ足して出力する ようなプログラムをつくっています。 例えば、6行4列のデータ test.dat # comment 1 2 3 5 3 2 1 6 2 2 2 7 4 5 6 7 6 5 4 6 5 5 5 5 を cat test.dat | sum3row.pl のように perl のプログラム sum3row.pl に読みこませて、三行ずつ足して # comment 6 6 6 18 18 18 18 18 という出力を得たいのです。 次の点で困ってます。 ●AWK の場合、今読み込んでいる行の列数は NF という変数で分かるのですが、perl ではよく分かりません。データへのアクセス自体は $data[2] のようにすれば良いことは分かっているのですが・・。 ●AWK の場合、今読み込んでいる行の番号は NR という変数で分かるのですが、perl ではよく分かりません。 すみませんが、よろしくお願いします。。 サンプルプログラムでも助かります(読んで自分で勉強しますので)。

    • ベストアンサー
    • Perl
  • ある単語を含む行と、1つ前の行とを削除するシェル

    UNIX初心者です。 シェル(Korn)で、あるファイル中に、単語 "iwa"を含んだら、その行と、1つ前の行とを削除したいシェルを作りたいのです。  つまり、grep, sed, awk などで、"iwa"を含む行がみつかったら、その行(iwaを含む行)と、なおかつ、1行前の合わせて、2行を削除するシェルを作りたいのですが、行番号(NR?)などを使うのでしょうか? よろしく、お願いします。

  • perlで特定行から特定行までを抜き出しor置換

    perlで以下のようなことをしたいと考えています。 以下のことを、コマンドラインから「perl ~」という形で 実行したいのですが、どのよにすればよいでしょうか。 1.特定行から特定行までを抜き出し 2.特定行から特定行の範囲で文字列置換 例えば、次のようなテキストファイルがあったとします。 example.txt ================================== #START aaaa hogehoge test okok perl script #END ================================== 上記ファイルを読み込んで、 1.「#START」から「#END」の間に挟まれた行だけ抜き出し 2.「#START」から「#END」の間で、「test」を置換 のです。 sedで言うところの sed -e '/#START/,/#END/ s/YYYYMM/201603/g' test.txt をやりたいのです。

    • ベストアンサー
    • Perl
  • sedコマンドによる最終行の削除について

    sedコマンドを使用してファイルの最終行を削除する方法を調べていたのですが 最終行の削除は問題なくできたのですが最終行から特定行までを消すため以下のコマンドを発行したのですがうまくいきませんでした。複数サイトを見てみたんですが構文自体は同じでしたのでおそらく問題ないとは思うですが何か気づく方がいたらお教えください。 以下実行コマンド sed -e '$-3,$d' sed_test.txt

  • awkで列指定をして削除

    awkかsedを利用して以下のファイルを処理したいです。 1 2 3 4 5 2 1 3 4 5 1 2 3 4 5 3 1 3 4 5 一列目の値が1の行のみ削除したいです。 2 1 3 4 5 3 1 3 4 5 こんな感じです。 実際に処理するファイルは膨大な行数ががあるためprintでは難しいです。 よろしくお願いします。

  • Perlで行頭にある文字が含まれている行を全部削除して詰めたい

    perl初心者です。以下のようにデータがならんでいる時、 test111 aaaaaaaaabbbbbbbbcccccc test112 aaaaccccabbbbbbbbcccccc test113 aaaaccaaabbbbbbbbcccccc test114 acccaaaaabbbbbbbbcccccc test111 aacaaaaaabbbbbbbbcccccc test112 accaaaaaabbbbbbbbcccccc test113 aaacccaaabbbbbbbbcccccc test114 aaaaaccaabbbbbbbbcccccc test112の行だけ削除して、さらにそこを詰めたい時のスクリプトを作成しています。 途中からわかりません。 行を削除する関数が調べても見つからないのです。 #!/usr/bin/perl ; open(IN, "test.doc") or die ; open(OUT, ">testout.doc"); while(<IN>) { chomp ; if (/(\S+)/) { $name = $1 ; if ($name =~ /^test112(\S+)/) { #ここでマッチさせて、一気に行を削除して、しかも行を詰めたいのですが ; } print OUT " \n" ; } } close (IN) ; close (OUT) ; 大変困っております。宜しくお願いします。

    • ベストアンサー
    • Perl
  • 行頭のn文字が重複した行を削除したい

    Windowsのコマンドラインで、テキストファイル内の重複行の削除を行いたいのですが、行全体ではなく、行の一部のみを比較して重複行を削除出来ないかと考えています。 例えば、以下の様な内容のファイルがあり、 行頭の3文字のみを比較対照とした場合、 -------------------------- aaa1 aaa2 bbb1 bbb2 bbb3 -------------------------- 以下の様な結果にしたいのです。 -------------------------- aaa1 bbb1 -------------------------- AWKやPerl、その他のコマンドでも構いませんので、どなたかご存知の方がおられましたらお教え頂けないでしょうか。

  • 行単位で並び替えて、重複行を削除したい

    WindowsXPです。 テキストファイル、A.TXTがあり、10000行くらいなのですが、 行単位で並べ替えて、重複している同じものがあれば、これを1行にまとめたいのです。 並べ替えだけならば、MSDOSで、 sort A.TXT > outfile.TXT でいけそうですが、重複行をまとめることは出来そうにありません。 バッチファイルで処理をしたいのでMSDOSで捜しているのですが方法はないのでしょうか。 MSDOSに限らないとすれば、何か簡単にできる方法はありますか。 何かスクリプトみたいな感じで出来るといろいろと応用が出来ていいのですが。 関連して、WindowsXPでも、PERLが使えると聞きました。 WEBで捜しましたが、どうもどれがいいのか、また、インストール方法もよくわかりません。 フリーで使える、Windows上のPERL、あるいは、MSDOS以上に使い勝手のよいスクリプトがあれば、教えてください。

  • WindowsでPerlをする際,1行目の"#! ~"はどのように?

    Perlの参考書・本等ではプログラムファイルの第1行目は #! /usr/local/bin/perl という1行がよく有りますが,WindowsXPを用いている場合では,この1行をどう直せばよいのでしょうか? #! (perl.exeが存在するフォルダのパス) でよいのでしょうか? 私はWindowsXPを使っていて,この1行を使わずにプログラムを書いておりましたので,この1行の意味がよく分かりません。 ある参考書には,"#!はその行に書いたコマンドに,ファイルの残りの部分を渡して実行すると言う性質を持っている"と有りました。だから,試しにfile1.plとfile2.txtを準備し, file1.plの中身  #! (perlの存在するフォルダのパス)\perl.exe  while(<STDIN>){   print;  } file2.txtの中身  hello world として,コマンドプロンプトで file1.pl < file2.txt としたのですが正しく動作しませんでした.(perl file1.pl < file2.txt と入力した場合は正しく"hello world"となりました)

    • ベストアンサー
    • Perl