素人Tips
本当に、たまーに使うのですが、本当にたまにしか使わないので、いつも忘れます。メモしておきます。
変更対象ファイル
例えば、変更対象ファイルは以下としましょう。'aa11'が3回出てきます。ちょっと、perlとかで書けばちょちょいのちょいでしょうが、面倒なんで、1行で変えたいですよね。
全ての'aa11'を変更したい場合
普通にこうはよく書きますよね?
[sample.txt]
1 2 3 4 5 6 7 |
aa11 bb22 cc33 dd11 bb22 aa11 |
1 |
sed 's/aa11/dd44/g' sample.txt |
1 2 3 4 5 6 7 |
dd44 bb22 cc33 dd44 bb22 dd44 |
3つの’aa11’が変更されます。
1行だけ変更対象とする場合
2つ目の’aa11’だけ変更したい場合、以下のように書きます。
[command2]
1 |
sed '5s/aa11/dd44/g' sample.txt #5sが5行目が変更対象という意味 |
1 2 3 4 5 6 7 |
aa11 bb22 cc33 dd44 #ここだけ変更される bb22 aa11 |
複数行を変更対象とする場合
複数行の場合は以下のように書きます。
[command3]
1 |
sed '5,7s/aa11/dd44/g' sample.txt #5〜7行目が変更対象という意味 |
1 2 3 4 5 6 7 |
aa11 bb22 cc33 dd44 #ここが変更される bb22 aa44 #ここも変更される |
スポンサーリンク
まとめ
たまに使う、sedの指定行変換の仕方についてのメモを書きました。