Sed - ヒントとコツ

Sed、または一般に知られているStream Editorは、主にテキストの解析とスクリプト内のテキストの変換に使用されます。 Sedのこの機能は、シェルスクリプトで柔軟で動的なコードを生成するために使用されます。 一般的なヒントやテクニックを知っていると、ユーザーはコードを最大限に最適化することができます。 出現回数に基づいてあるテキストを別のテキストに置き換える特定の行表示する、スペースまたは空白を削除するなど、テキストのカスタム変換を実行できます。 複数の行結合したり、特定の行の特殊文字置き換えたりするなどの雑多な項目についても、 ヒントやテクニックを使用できます。

= [Sed]ヒントとコツ

代用

各行の「foo」を「bar」に置き換えます。

1回目のみ

sedの/ foo / bar / '

3番目の場合のみ

sedの/ foo / bar / 3 '

すべての発生

sedの/ foo / bar / g '

最後の出来事の直前

sedの/ \(。* \)foo \(。* foo \)/ \ 1bar \ 2 / '

最後のケースのみ

sedの/ \(。* \)foo / \ 1bar / '

"foo"を "bar"で "plop"を含む行のみに置き換えます。

sed '/ plop / s / foo / bar / g'

「plop」を含む行を除いて、「foo」を「bar」に置き換えます。

sed '/ plop /! s / foo / bar / g '

各行の "Foo"または "foo"を "bar"に置き換えます。

sed '/ [Ff] oo / bar / g'

「青」または「白」または「赤」を「緑」に置き換えます

sed 's / blue \ | 空白\ | 赤/緑/ g '

表示

1行目(ヘッド-1)

sed q

最初の5行(頭-5)

sed'5 q '

sed'1、5! d '

最後の行(末尾-1)

sed-n '$ p'

sed '$! d "

最後の5行(tail -5)

sed-e:ae '$ q、N、6、$ D。 ba '

最後の2行(tail -2)

sed '$! N; $! D '

理由や正規表現に一致する行のみ

sed-n '/ pattern / p'

sed '/ regexp /! d '

理由や正規表現と一致しない行のみ

sed-n '/ pattern /! p '

sed '/ regexp / d'

パターンまたは正規表現の前の行

sed-n '/ pattern /(g; 1!p;)h'

パターンまたは正規表現に続く行

sed-n '/ regexp /(n、p;)'

削除する

===スペースとタブ==

スペースとタブを削除する

行頭

sedの/ ^ [\ t] * / /

sed 's / ^ \ s * / /'#パラメータ "\ s"を使う

行末に

sed '/ / [\ t] * $ //'

行頭と行末

sedの/ ^ [\ t] * //; s / [\ t] * $ // '

空行

空白行を削除する

すべての空行

sed '/ ^ $ /

sed '/./! の

一番上の人だけ

sed '/./, $! の

sed-nr '/./, $ /(.*)/ s \ 1 / p'#ありがとうAdrien

最後の人だけ

sed-e:ae '/ ^ \ n * $ /($ d N; ba'-e') '

一定間隔

定期的に行を削除する

全ラインペア

sed'1〜2d '

すべての奇数行

sed'2〜2d '

行nからn行ごと

sed'3〜2d '#2 3行目からのすべての行

その他

行に参加

2行2行を添付

sed '$! N s / \ n / / '

3行を3行で添付

sed '$! N s / \ n //; $! N s / \ n / /; '

行が円記号(\)で終わっている場合は、次の行を追加し、行の終わり(\ n)をスペースで置き換えます

sed-e:ae '/ \ \ $ / N s / \ \ \ n / /; ta '

行が等号(=)で始まる場合は、前の行に追加して等号(=)をスペースに置き換えます。

sed-e:ae '$! N s / \ n = / /; ta'-e 'P、D'

前の記事 次の記事

トップのヒント