Linux-admin-sed-command
Linux Admin-sedコマンド
- 文字置換
- 印刷操作
- 削除操作
_sed_の一般的なコマンド構文は-
覚えておくべき一般的な_sed_スイッチを次に示します。
Switch | Action |
---|---|
-i | Edit files in place instead of stream, -i[SUFFIX] to create backup file |
-e | Add the script commands to be executed |
-n | Quiet, suppress automatic printing |
-r | ReGex, use extended regular expressions in the script |
_sed_は、*-e *オプションとともに使用すると、コマンドを拡張してストリーム上の複数の操作を処理します。 代わりにsedを再帰的にパイピングします。
sed_を指定した '- n_ オプションは、stdoutへのデフォルトの印刷を抑制します。 ご覧のとおり、sedのprintコマンドを使用すると、各行が標準出力に複製されます。
今回は、sed_で-n_オプションを使用します-
sed_は、コンテンツストリームをstdoutに送信します。 「_p」または印刷コマンドが追加されると、各行に個別のストリームが送信され、すべての行が標準出力に複製されます。
sed置換コマンド
このコマンドは、「 _ s_ 」オプションで指定されます。 すでにsed_がその置換コマンドで使用されているのを見てきました。 以下は簡単な例です-
dev.txtという名前のファイルでこれを試してみましょう-
さて、_sed_に送信される出力ストリームだけでなく、ファイルの内容を変更しましょう-
注-バックアップファイルを作成するために、一意のサフィックスを持つ - i オプションを使用しました。
sed printコマンド
このコマンドは「p」コマンドで指定されます。
names.txtファイルを使用してみましょう。出力は簡潔にするために編集されています-
_sed_は、「アドレス」の使用を許可し、stdoutに出力される内容をより詳細に定義します-
_head_と同様に、names.txtファイルの最初の10行を印刷しました。
9階にオフィスがあるものだけを印刷したい場合はどうしますか?
とても簡単。 9階にオフィスがある人を除き、全員を印刷することもできます-
上記のコードでは、/と/with ! の間の ' p '印刷操作を無効にしました。 これは、「d」または_delete_コマンドと同様に実行されます。 ただし、_sed_の否定によって結果が異なる場合があります。 したがって、一般的なルールとして:_p_は、不要なものを印刷して無効にします。
sed deleteコマンド
前述のように、deleteコマンドはsed printコマンドの反対です。 _name.txt_ファイルから始めましょう-
何も印刷されません。 上記のコマンドを使用して、ストリームの標準出力からすべての行を削除するように_sed_に依頼しました。 さて、最初の2行だけを印刷し、残りのストリームを「削除」しましょう-
See? 「p」または印刷コマンドに似ています。 さて、deleteコマンドで何か便利なことをしましょう。 ファイル内のすべての空白行を削除したい-
電子メールをコピーして貼り付けたり、非標準の改行でフォーマットしたりして、ごちゃ混ぜのテキストを含むこのようなファイルを受信することは珍しくありません。 vimでファイルをインタラクティブに編集する代わりに、_sed_を使用して作業を行うことができます。
これで、ファイルは読みやすい形式にフォーマットされました。
注意-重要なファイルを変更する場合は、* _- i _ *スイッチを使用します。 ファイルのバックアップサフィックスを追加することは、ファイルの内容を予約することを強くお勧めします(_sed_は、わずかな入力ミスで極端な変更を加えることができます)。