📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

288行目: 288行目:
  sed -e 's/パターン//g'  # 置換後の文字列を指定しないことで削除処理になる
  sed -e 's/パターン//g'  # 置換後の文字列を指定しないことで削除処理になる
<br>
<br>
文字列の削除も置換処理と同じなので、通常の置換処理と使い方はまったく同じである。<br>
文字列の削除も置換処理と同じなので、通常の置換処理と使い方は同じである。<br>
  echo "hoge-fuga foo-bar" | sed -e 's/-//'  # gを指定していないため、最初に一致した文字のみ削除される
  echo "hoge-fuga foo-bar" | sed -e 's/-//'  # gを指定していないため、最初に一致した文字のみ削除される
  hogefuga foo-bar
  hogefuga foo-bar
294行目: 294行目:
  echo "hoge-fuga foo-bar" | sed -e 's/-//g'  # gを指定すると、全ての一致する文字列が削除される
  echo "hoge-fuga foo-bar" | sed -e 's/-//g'  # gを指定すると、全ての一致する文字列が削除される
  hogefuga foobar
  hogefuga foobar
<br><br>
== 正規表現を使用した文字列置換 ==
置換対象パターンの指定には、一部の正規表現を使用することもできる。<br>
使用可能な正規表現は、sedのバージョン等により異なる場合がある。<br>
<br>
aからeまでのいずれかの文字をXに置換する。<br>
echo "abcdefghij" | sed -e 's/[a-e]/X/g'
XXXXXfghij
<br>
数字以外を削除する。<br>
echo "I am 20 years old." | sed -e 's/[^0-9]//g'
20
<br>
行頭に文字列を追加するには、行頭を表す<code>^</code>(キャレット)を追加する文字列に置換する。<br>
echo "Hello World" | sed -e 's/^/>>>/g'
>>>Hello World
<br>
行末に文字列を追加するには、行末を表す<code>$</code>を追加する文字列に置換する。<br>
echo "Hello World" | sed -e 's/$/ !!!/g'
Hello World !!!
<br>
連続する複数のスペースを1つにまとめる。<br>
連続する複数のスペースは、<code>  *</code>で表される。<br>
<br>
<code>*</code>(アスタリスク)は直前の文字の0〜N個の繰り返しであるため、<code> *</code>では0個のスペースも置換対象とみなされる。<br>
したがって、連続する複数のスペースを表すには、"1個のスペース + 0〜N個のスペース"で<code>  *</code>となる。<br>
echo "hello    world" | sed -e 's/  */ /'
hello world
<br>
GNU sed(Linuxのsed)では、<code> \+</code>で、1個以上の連続するスペースを表現することができる。<br>
echo "hello    world" | sed -e 's/ \+/ /'
hello world
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]