Linuxコマンド集 |
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス |
sed | 文字列の置換,行の削除を行う | (1) |
構文 | |
sed (オプション) [対象ファイル] |
オプション | |||||||
|
説明 | |
sedは与えられた文字列を,ルールに従って変換するコマンドだ。例えば,文字列の置換,行の削除といった処理が行える。 変換に利用できるルールには下表「sedの条件式」のような条件式が利用できる。例えば,文字列を挿入したい場合は「a」や「i」の後に挿入する文字列を指定する。文字列を置換したい場合は「s/置換ルール/置換文字/」と実行する。 置換ルールの最初に数値を指定すると,指定した行のみが処理される。例えば,「3d」と指定すると,3行目が削除される。 sedコマンドで実際に変換を行う場合は,変換処理内容は「-e」オプションを指定した後に記述する。また,sedコマンドに指定したファイルの内容を処理する。例えば,source.txt内のLinuxをリナックスに置換したい場合は,次のように実行する。 $ sed -e "s/Linux/リナックス/g" source.txt 結果は標準出力(ディスプレイ)に表示される。もし,ファイルに保存したい場合は出力のリダイレクト(пjを利用する。 また,「-f」オプションで変換手順を記載したスクリプト・ファイルを指定できる。指定したファイルの内容に従って処理される。 |
用語 | |
【パターン・スペースとホールド・スペース】 sedでは処理を行う対象の文字列を一時的に保存しておく必要がある。この保存スペースのことをパターン・スペースと呼ぶ。例えば1行目を処理するときには,1行目の内容がパターン・スペースに保存される。その後,パターン・スペースにある文字列に対して置換などの処理が行われる。 一方のホールド・スペースは,パターン・スペースのサブとして使われる保存領域だ。例えば,パターン・スペースにある文字列を後の処理で利用したい場合などは,一度ホールド・スペースに移動しておく。他の処理を行った後に,ホールド・スペースからパターン・スペースに戻せば,以前の処理の続きが行える。 パターン・スペースの文字列をホールド・スペースにコピーする場合は「h」,ホールド・スペースの文字列をパターン・スペースにコピーする場合は「g」,パターン・スペースとホールド・スペースを入れ替える場合は「x」を実行すればよい。 |
sedの条件式 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
使用例 | |
テキスト・ファイルの5~10行目を削除する $ sed -e "5,10d" source.txt テキスト・ファイル内の「Nikkei Linux」を「日経Linux」に変換する $ sed -e "s/Nikkei Linux/日経Linux/g" source.txt 「Error」がある行に,「### Check Line ###」という新しい行を追加する $ $ sed -e "/Error/i #### Check Line ###" source.txt |
関連事項 | |
tr,sort,文字列を置換する,どのような正規表現があるのか |