マインドマップギャラリー Sed コマンドの短縮表記
これは、Sed コマンドの省略表現に関するマインド マップです。概要と構文、オプション、コマンド、メタキャラクター セットなどが含まれます。お役に立てば幸いです。
2023-11-23 12:09:46 に編集されましたSed コマンドの短縮表記
はじめにと文法
説明: ストリーム エディタ - ストリーム エディタ。テキスト フィルタリングとフォーマットされた置換出力を実行します。 sed には 2 つの組み込みストレージ スペースがあります。 1) コマンド実行後、パターンスペースがクリアされます。 2).ホールドスペースはデフォルトではクリアされません
コマンド形式: sed [オプション] -f scriptfile files #複数のファイルをサポート sed [オプション] '[アドレス範囲|パターン範囲] s#{置換文字列}#{置換文字列}#{置換フラグ}' [入力ファイル]
複数の式: sed 'expression' | sed 'expression' #次の sed ステートメントと同等 sed '式'
オプション
-i: データを画面から出力するのではなく、読み込んだファイルの内容を直接変更します (ソース ファイルに直接追加するか、バックアップします)。
-r: 拡張式をサポートします。sed で () をエスケープするために \() を使用する必要はありません。
-f <スクリプト ファイル> または --file=<スクリプト ファイル>: # オプションで指定されたスクリプト ファイルで入力テキスト ファイルを処理します
-n または --quiet または --silent: #デフォルトの出力をキャンセルし、スクリプト処理後の結果のみを表示し、画面に出力します。
-e <スクリプト> または --expression=<スクリプト>: # オプションで指定されたスクリプトを使用して、入力テキスト ファイルを処理し、複数の sed コマンドを実行します。
コマンド[コマンド]
追加操作
a 現在の行の次の行にテキストを追加します 現在の行にテキストを挿入します
削除操作
d 選択した行を削除します D テンプレートブロックの最初の行を削除します。
変更操作
s は指定された文字を置き換えます。通常、正規表現とともに使用され、区切り文字はカスタマイズできます c 選択した行を新しいテキストに変更します
動作確認
n 入力の次の行を読み取り、最初のコマンドではなく次のコマンドで新しい行を処理します。 N テンプレート ブロックの後に次の入力行を追加し、それらの間に新しい行を埋め込み、現在の行番号を変更します。
p はテンプレート ブロックの行を出力します。
ファイルの保存と読み取り
w ファイルはテンプレート ブロックを書き込み、ファイルの末尾に追加します W ファイルは、テンプレート ブロックの最初の行をファイルの末尾に書き込み、追加します。
r ファイルはファイルから行を読み取ります
行番号と逆取得
= 現在の行番号を出力します
! 次のコマンドが選択されていないすべての行に有効になることを示します。
交換フラグ
どの文字から処理を開始するかを決定します。1 ~ 512 の数字マーク
置換/一致/検索では大文字と小文字を区別しません
g は行内の完全な置換を意味します
p は印刷行を意味し、-n と一緒によく使用されます。
大文字と小文字の変換: \l \L \u \U、つまり小文字/大文字
y: g の追加の有無に関係なく、一致した文字列を大文字と小文字に変換します。
e 実行コマンド フラグ。パターン スペース内の任意のコンテンツを bash コマンドとして実行します (スペースに注意してください)。
通常の一致では、\1 部分文字列一致タグと一致した文字列タグが使用されます。
w はファイルに行を書き込むことを意味します。 x は、テンプレート ブロック内のテキストをバッファ内のテキストと交換することを意味します。
メタキャラクタセット
注: sed には、数字と文字を表す \d \w メタキャラクタはなく、次のメタキャラクタのみがあります。
^ は、次のような行の先頭に一致します。 /^sed/ は、sed で始まるすべての行に一致します。 $ は、次のような行の末尾に一致します。 /sed$/ は、sed で終わるすべての行に一致します。 /s.d/ は、s の後に任意の文字が続き、最後に d と一致します。 * 0 個以上の文字と一致します。 /*sed/ テンプレートが 1 つ以上のスペースとそれに続く sed であるすべての行と一致します。 [] は指定された範囲内の文字に一致します。たとえば、/[ss]ed/ は sed と Sed に一致します。 [^] は、指定された範囲内にない文字と一致します。たとえば、/[^A-RT-Z]ed/ は、A-R と T-Z を含まない文字で始まり、その後に ed が続く行と一致します。 \(..\) は部分文字列に一致し、一致した文字を保存します (s/\(love\)able/\1rs など)。loveable は恋人に置き換えられます。 & は、検索文字を保存して他の文字を置き換えます (s/love/**&**/ など)。love は **love** になります。 \< は、次のような単語の先頭に一致します。/\<love/ は、love で始まる単語を含む行に一致します。 \> /love\>/ など、単語の末尾に一致します。 love で終わる単語を含む行に一致します。 x\{m\} は文字 x, m 回を繰り返します。たとえば、/0\{5\}/ は 5 つのゼロを含む行に一致します。 x\{m,\} は、文字 x を少なくとも m 回繰り返します。たとえば、/0\{5,\}/ は、少なくとも 5 つのゼロを含む行に一致します。 x\{m,n\} は、文字 x を少なくとも m 回、最大で n 回繰り返します。たとえば、/0\{5,10\}/ は、5 ~ 10 個のゼロを含む行に一致します。
典型的な例
削除コマンド d
sed -ri '3d' file //ファイル file の 3 行目を削除
sed -ri '/root/d' file //正規表現と一致したルートを含む行を削除
sed -ri '/root/,5d' file //ルートを含む通常の一致行から 5 行目までのコンテンツを削除します
sed -ri '/root/, 5d' file //正規表現に一致したルートを含む行以降を削除し、5行追加
sed -ri '/root/,!d' file //正規表現と一致したルートを含む行以外の行を削除
コマンドを置換する
sed -ri 's/root/alice/' passwd //passwd ファイルの最初のルートを alice に置き換えます
sed -ri 's/root/alice/g' passwd //passwd ファイル内のすべての root を alice に置き換えます
ファイル読み取りコマンド r
sed -r '/root/r /etc/hosts' passwd //passwd ファイル内のルート文字列と一致した後、/etc/hosts ファイルを読み取ります
ファイル書き込みコマンドw
追加コマンド
指定された行の後に行 a を追加します
sed -r '2a i love you' passwd //passwd ファイルの 2 行目の後に「i love you」という行を挿入します
指定した行の前に i 行を挿入します
sed -r '2i i love you' passwd //passwd ファイルの 2 行目の前に「i love you」という行を挿入します
コマンドcを変更する
sed -r '3c\これが好きです! ' passwd //3 行目を「I like this!」に置き換えます。
sed -r '/daemon:/c\これは好きです! ' passwd //通常の一致する行を見つけて、「I like this!」に置き換えます。
次のコマンドを取得します n
選択肢を否定してください!
補足知識
l (小文字の l) 特殊文字 (行末とタブマーク) を印刷および表示します。
特殊記号 {} {}で囲まれたコマンドは順番に実行され、前のコマンドは後続のコマンドに影響を与えます。
sed スクリプト
1 行に 1 つの sed 式