sedは日暮れて:第10回 コマンド落穂拾い

おひさしぶうりいねええ。さぼり~までごめごめ~にゃあみ~ご。

sedの最終回です。置換以外のコマンドのお話として。削除、挿入、追加を紹介しますねん。ではさっそく本題~にゃ。
削除コマンドはd。 構文はこうです。

sed “アドレス d” 対象ファイル > 出力ファイル

アドレス指定は前回やりましたねん。行番号指定でも、文字列指定でもどちらでもOKです。正規表現を使いたいなら、/正規表現/dですね。いずれの場合も、指定の行全体を削除しますので要注意。
———————————————–
行全体でなく、指定した文字列のみを削除したい場合は置換コマンドのsを使います。 s/検索文字列//とすればおおけえ。置換文字列に何も指定しないことによって検索文字列が削除されるわけなんだよおん。
———————————————–

挿入コマンドはi。追加コマンドはa。
挿入は、指定した行の前にテキストを挿入します。追加は文字通り指定行の後にテキストを追加します。

この2つのコマンドはDOSコマンドラインでは直接打ち込めないです。命令が複数行にわたるから。スクリプトファイル(第8回参照)に書いてsed -fで呼び出しましょう。

構文はこうなります。
アドレス i(またはa)
挿入(または追加したい)テキスト

ここでの¥マークは何かといえば、改行を無視するエスケープだったりします。難しく考えずに例示太郎。sample.txt というファイルの中で「塔にふる雪」という文字列の入った行の前に「坂田靖子作」というテキストを挿入したい場合。エディタで次のような文を書いてscript1という名で保存します。

/塔にふる雪/i
坂田靖子作

んでもって。
sed -f script1 sample.txt > pppp

とすれば、結果ファイル pppp が出来ます。追加は、iのところがaに変わるのみ。また、挿入・追加したいテキストが2行以上ある場合は、テキスト内の改行の前に必ず¥マークを入れ、「まだ構文の続きなんだよおお」ということを示す必要があります。

以上で今回のお話はおしまい。sedの基本についてのお話もおしまい。

10回にわたって、プログラミング未経験の初心者(自分含む)がsedを使うにあたって必要最小限なことの説明をしたつもりです。これまでに説明してきたコマンド以外にもsedには読み出し、書き出し、変更コマンドなどがあります。が。実際に使用する場面がそんなにないと思えたもの(私にとっては。勿論、用途によって要不要の尺度は異なると考えますが)は省略しました。フロー制御などの高度なsedの使用法についても触れていません。基本をおさえることを目的としたからです。

ほおおお。sedの花嫁はハネムーンに旅だってしまいました。見送る私たちは小さく安堵のため息をついて次の場所に向かわなければなりません。ふむむう。来週には出発できるのかしらん。では再会を期して。またまた~にゃ。

補遺1

補遺2

FAQ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です