📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 288行目: | 288行目: | ||
sed -e 's/パターン//g' # 置換後の文字列を指定しないことで削除処理になる | sed -e 's/パターン//g' # 置換後の文字列を指定しないことで削除処理になる | ||
<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]] | ||