こんばんは。「彼女のCOMMAND GARBLED!によってげげげえとなったsedの花嫁、さえも」の時間です。パタフィジックな旅に出ましょう。おのおのがた。
sedとは、簡単に言えば、検索置換をコマンドラインで一発でやってしまうものです。普通の量のテキストを扱うならば、検索置換は、秀丸やWordやelisやmifesやその他エディタ、ワープロ等でできてしまうことなので、必要ないと言えましょう。
だがしかし。だがしか~し。ひとつひとつは短いとはいえ、200もの文書の中の表記を全部変えてしまいたいとなったらいかがせん。そういう賽の河原/シジフォス的所業って聞いただけでくらくらしてきません?だってファイル開くだけでめんどくさいじゃ~ん。
そういうときに自動的に置換してくれるのがわれらがsedでございます。さあさっそく基本構文だああ。
sed (オプション)"(コマンド)" 対象ファイル > 出力ファイル
この構文で気づいてほしいことが1点。出力ファイルをリダイレクト(>)していることです。sedで行う置換の結果というのは、オリジナルのファイルにそのまま上書きされるんではないのだ。つまり、別の結果ファイルを作るということですね。ちなみに「> 出力ファイル」を省略すると、画面にだだだだあと結果が出てしまって、はいそれまでよ、なので(;_;)ちゃんとリダイレクトして保存しましょう。
オプションはおまけなのでなくてもよろし。あってもよろし。"~"の中のコマンド部分はいろいろあるので次回以降解説してゆきます。
今回は美中の美、じゃなかった渦中の蚊でもない、基本中の基本をやるぞお。準備はいいか。歯をくいしばれっ!ちと違いますね(^^;
sed "s/探す言葉/置換する言葉/" 対象ファイル > 出力ファイル
この文が何を言っているか通訳してみるあるね。「探す言葉を対象ファイルの中から見つけだしてそれを置換する言葉に変えてしまった後、結果をあますことなく出力ファイルの中にぺっぺっと吐き出しやがれ」でした。んまっ。ちと通訳の方がお下劣だったようですわよ。って自分なんですが(^^;
sedコマンドの「s」を使っています。これは"s/A/B/"の形で、「AをBに置換せよ」という意味になるコマンドです。私なんかよく、Bのあとの「/」を忘れてしまってsedに叱られてしまいます。お叱りの言葉が、今回の標題の「COMMAND GARBLED!」なんです。これは構文のミスを教えてくれる言葉なのん。でもどこかにミスがあると言うだけ(笑)。なげ~え構文だとどこが間違っているか探すのが一苦労なんですよお。「間違ってるで~」というだけではなしにどこが間違っているかびしっ!と教えてくれたらいいのにね。ふるるう。
それはともかく、前回までの正規表現と、今回の基本の構文をマスターするだけで、もうかなりのことができるようになったですよ。次回はその例と他のコマンドの話をやりますね。ではまた来週!