- ベストアンサー
sedの使い方に関する質問
例えばsedでファイルの5行目から10行目までを表示させたい 場合はどうすればよいでしょうか? sed -e '5,10p'などとヘルプを見てやってみたのですが うまくいかないので教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
\( \) で囲まれたものは \数字(1~9)で参照することができます。 そのほか、abc* にマッチするのは空文字列、abc, abcc, abccc … ですが、\(abc\)* だと空文字列、abc, abcabc, abcabcabc … のようにグループ化することができます。 それと細かいことですが、大きいファイルに対して使うことがあるのなら sed -ne '5,1-p;10q' として10行目まできたら抜けてしまうようにしたほうがよいかも。
その他の回答 (2)
- sakusaker7
- ベストアンサー率62% (800/1280)
#2 です。 すみません 1- は10の打ち間違いです。 ご推察の通り、5,10p と 10q という二つのコマンドの組み合わせです。 そのままは並べられないので、;で区切っているわけです。 5,10p は5行目から10行目までを出力、10qは10行目だったら quit するというものです。 sedによっては;による区切りを許さないかもしれませんが、Linuxを 使っているシステムなら多分GNU sed でしょうから大丈夫のはず。
お礼
ありがとうございました。^^
- Lean
- ベストアンサー率72% (435/603)
以下のような感じですかね。 sed -n 5,10p ファイル
お礼
ありがとうございます。 うまくいきました。^^ sed "s/\(.*\)/copy \1 \\work\\\1/" list >cptxt.bat で\(.*\)で1行をさすみたいなんですが、 ()はどういう意味をもつのでしょうか? 以前も\(.*\)を見たことがあって意味がわからなくて。 http://www.chimimo.com/sed/
お礼
ありがとうございます。 また調べてみます。^^ sed -ne '5,1-p;10q'ですが 分からないのですが教えていただけないでしょうか? 5,1-pと10qの2つのコマンドからなるということですよね。 5行目なら1-pを実行し、10行目なら終了?? 1-pは何でしょうか?