📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 383行目: | 383行目: | ||
sedコマンドの置換対象の文字列の入力において、[Ctrl] + [V]、[Ctrl] + [M]と入力する。<br> | sedコマンドの置換対象の文字列の入力において、[Ctrl] + [V]、[Ctrl] + [M]と入力する。<br> | ||
sed -e 's/^M//g' CRLF.txt > LF.txt # "^"は制御文字であるため、エスケープは不要 | sed -e 's/^M//g' CRLF.txt > LF.txt # "^"は制御文字であるため、エスケープは不要 | ||
<br> | |||
==== 変数を使用した文字列置換 ==== | |||
置換パターンの指定には、変数の値を使用することができる。<br> | |||
sed -e "s/${変数名}/置換後パターン/" | |||
sed -e "s/置換対象パターン/${変数名}/" | |||
sed -e "s/$VAR1/$VAR2/" | |||
<br> | |||
VAR="hoge" | |||
echo "hoge piyo fuga" | sed -e "s/${VAR}/foo/" # 変数VARの値(hoge)をfooに置換 | |||
foo piyo fuga | |||
echo "hoge piyo fuga" | sed -e "s/fuga/$VAR/" #↑変数VARの値(hoge)が置換パターンに使用される | |||
hoge piyo hoge | |||
<br> | |||
==== 行を指定した置換 ==== | |||
sedコマンドは、行番号を指定することにより、限定された範囲内でのみ処理を行うことができる。<br> | |||
# 特定の1行のみで置換を行う | |||
sed -e '<行番号>s/パターン1/パターン2/' | |||
# 開始行~終了行の範囲でのみ置換を行う | |||
# sの直前に対象とする行番号を指定する | |||
sed -e '<開始行>,<終了行>s/パターン1/パターン2/' | |||
<br> | |||
ある特定の行のみを置換対象とする場合、または、N行目〜M行目のみを置換対象とする場合は、<br> | |||
対象とする行の行番号を指定することで、処理が適用される範囲を限定することができる。<br> | |||
<br> | |||
以下の例では、テキストファイルに対して、置換処理を行っている。<br> | |||
cat Sample.txt | |||
111 ABC | |||
222 ABC | |||
333 ABC | |||
<br> | |||
2行目のみを処理対象とする。<br> | |||
sed -e '5s/ABC/OK/' Sample.txt | |||
111 ABC | |||
222 OK | |||
333 ABC | |||
<br> | |||
2~3行目のみを処理対象とする。<br> | |||
sed -e '2,3s/ABC/OK/' Sample.txt | |||
111 ABC | |||
222 OK | |||
333 OK | |||
<br> | |||
==== 特定の行を削除する ==== | |||
特定の文字列を含む行を削除するには、<code>d</code>を指定する。<br> | |||
<br> | |||
N行目またはN行目~M行目を削除する場合、削除対象となる行のパターンと<code>d</code>を指定することで、そのパターンを含む行を削除できる。<br> | |||
この処理は、置換ではなく削除であるため、置換後のパターンを指定する必要はない。<br> | |||
sed -e '/パターン/d' | |||
<br> | |||
以下の例では、テキストファイルに対して削除処理を行っている。<br> | |||
cat Sample.txt | |||
111 ABC | |||
222 ABC | |||
333 ABC | |||
<br> | |||
333を含む行を削除する。<br> | |||
sed -e '/333/d' Sample.txt | |||
111 ABC | |||
222 ABC | |||
<br> | |||
上記は、<code>grep -v</code>コマンドでも同様の処理ができる。<br> | |||
grep -v "333" Sample.txt | |||
111 ABC | |||
222 ABC | |||
<br> | |||
空行を削除する。 | |||
空行は、行頭と行末の間に何も存在しない行であるため、正規表現の<code>^$</code>で表すことができる。<br> | |||
これを置換対象パターンに指定することで、空行を削除することができる。<br> | |||
cat Sample.txt | |||
111 ABC | |||
222 ABC | |||
<br> | |||
sed -e '/^$/d' Sample.txt | |||
111 ABC | |||
222 ABC | |||
<br> | |||
行中に含まれる置換パターンに関係なくN行目を削除するには、置換パターンを指定せずに<code>d</code>に行番号のみを指定する。<br> | |||
# 単一行の削除 | |||
sed -e '<行番号>d' | |||
# 複数行の削除 | |||
sed -e '<開始行>,<終了行>d' | |||
<br> | |||
cat Sample.txt | |||
111 ABC | |||
222 ABC | |||
333 ABC | |||
<br> | |||
sed -e '3d' Sample.txt | |||
111 ABC | |||
222 ABC | |||
<br> | |||
sed -e '2,3d' Sample.txt | |||
111 ABC | |||
<br> | |||
最下行を削除するには、最下行を表す<code>$</code>を行番号の代わりに指定する。<br> | |||
cat Sample.txt | |||
111 ABC | |||
222 ABC | |||
333 ABC | |||
<br> | |||
sed -e '$d' Sample.txt | |||
111 ABC | |||
222 ABC | |||
<br> | |||
==== 特定の行のみを表示する ==== | |||
N行目またはN~M行目のみを表示するには、<code>-n</code>オプション、行番号、<code>p</code>を指定する。<br> | |||
# N行目を表示 | |||
sed -n '<行番号>p' | |||
# N行目~M行目を表示 | |||
sed -n '<開始行>,<終了行>p' | |||
<br> | |||
1行目のみを表示する。<br> | |||
cat Sample.txt | |||
111 ABC | |||
222 ABC | |||
333 ABC | |||
<br> | |||
1行目のみを表示する。<br> | |||
sed -n '1p' Sample.txt | |||
111 ABC | |||
<br> | |||
2~3行目のみを表示する。<br> | |||
sed -n '2,3p' Sample.txt | |||
111 ABC | |||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]] | [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]] | ||