[Linux]sedエディタ


1.構文
sedツールは、コマンドラインで指定したファイルまたは標準入力から入力ストリームを取得します.出力先を明確に指定しない限り、sedは結果を標準出力に出力します.sedのコマンドライン構文は次のとおりです.
sed [-n] program [file-list]
sed [-n] -f program-file [file-list]

パラメータprogramはコマンドラインのsedプログラムを指し、パラメータprogram-fileはsedプログラムを含むファイルの完全なパス名を表し、パラメータfile-listはsedが処理する一般ファイルの完全なパス名を表す.
sedオプション
フルライト
簡潔に書く
説明
--file program-file
-f program-file
コマンドラインではなく指定したファイルからsedを読み出します.
--in-place[=suffix]
-i[suffix]
ファイルをその場で編集します.
--help
sedの使い方を概説する.
--quiet
-n
sedがテキスト行を標準出力にコピーしないことを示します.
2.エディタの基礎
sedプログラムは、次の構文に適合する1行または複数行のコマンドで構成される.
[address[ ,address]] instruction [argument-list]

ここでaddressはオプションであり、addressを省略するとsedは入力中のすべての行を処理する.instructionは、テキストを変更するための編集コマンドです.Argument-listのパラメータの数とタイプは、命令instructionに依存します.複数のsedコマンドを同じ行に配置する場合は、セミコロン";"を使用します.で行ないます.
行番号は、入力の最後の行を表す行を選択するためにアドレスとして使用できます.正規表現をアドレスとして使用すると、正規表現に一致する文字列を含む行を選択できます.アドレスが指定されていない場合、sedはすべての行を選択し、1つのアドレスを提供すると、そのアドレスによって選択された各行の入力に命令を作用させ、2つのアドレスを提供すると、命令がグループの入力行に作用する.
3.指令
sed指令
インストラクション
説明
d
削除命令によりsedは選択された行を出力しない.
n
次のコマンドは、現在選択されている行を出力し、入力から次の行を読み込みます.
a
追加命令は、現在選択されている行の後に1行または複数行のファイルを挿入します.
i
挿入コマンドは、選択した行にテキストを追加する前にaと同じです.
c
変更命令は、選択した行を新しいテキストに変更するのとは異なり、aおよびiクラスの追憶と異なります.
s
置換命令はvimと類似している.
p
印刷コマンドは、選択した行を標準出力に書き込みます.
w file
書き込み命令はpと同様で、出力を指定したファイルに書き込むのとは異なります.
r file
リードコマンドは、指定したファイルの内容を読み出し、選択した行の後に追加します.
q
コマンドを終了するとsedは直ちに実行を終了します.
4.制御構造
sed制御構造
せいぎょこうぞう
説明
!
sedの後に同じ行の命令が、その命令によって選択されていない各行のアドレスに作用するようにする.
{}
命令のセットを囲むと、その前のアドレスで選択された行に作用します.
ブランチめいれい
注意:使用しないことを推奨します.
:label
sedプログラムの1つの場所を識別します.
b [label]
無条件にlabel識別を制御するコマンドに移行します.
t [label]
最近、Substitute命令マッチングの実行に成功した場合、label識別子を制御する命令に移行する.
5.PatternゾーンとHoldゾーン
sedには2つのバッファがあり、すべてのコマンドはPattern領域で動作します.Pattern領域には、sedが入力から読み込んだばかりの行が保存されています.一時バッファとして、Hold領域は、Pattern領域のデータを操作する際にデータを一時保存するために使用することができる.Pattern領域とHold領域の前にデータ転送を行うコマンドは次のとおりです.
データ転送コマンド
コマンド#コマンド#
説明
g
Hold領域のコンテンツをPattern領域にコピーすると、Pattern領域の元のコンテンツが失われます.
G
1つの改行文字とHold領域の内容をPattern領域の内容の後に追加します.
h
Pattern領域のコンテンツをHold領域にコピーすると、Hold領域の元のコンテンツが失われます.
H
1つの改行文字とPattern領域の内容をHold領域の内容の後に添付します.
x
Pattern領域とHold領域の内容を交換します.
本文は“青鋒ノート”のブログから出て、転載をお断りします!