このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 9 / 昨日: 0
総計: 753
- Dokuwiki.fl8.jp(509)
- 13 CentOS6メール設定(26)
- FreeBSD カーネル再構築(24)
- 05 rsync(23)
最近の更新
このページへのアクセス
今日: 9 / 昨日: 0
総計: 753
sedコマンドは、文字の置換を行うコマンドです。
sed [オプション] [コマンド] [ファイル名]
-e | 次にくるのがコマンドとする。 |
-f | 次にくるのがスクリプトとする。 |
-i | ファイルを書き換える 。 .[name] を付けるとオリジナルを保存しておく |
d | 行を削除 |
s/パターン/置換文字列/ | 各行で最初に一致した文字列だけ置換(s/パターン/置換文字列/) |
s/パターン/置換文字列/g | 全体を置換(s/パターン/置換文字列/g) |
s/パターン/置換文字列/gi | 全体を置換(s/パターン/置換文字列/g) ※大文字小文字関係なく |
s/パターン/置換文字列/数値 | 各行で指定した数値番目の文字列だけ置換(s/パターン/置換文字列/数値) |
s/パターン/置換文字列/3 | 各行で3番目に一致した文字列だけ置換(s/パターン/置換文字列/) |
color(red){'/^$/d'};が条件とコマンドの個所だが、
/と/の間が条件です。この場合[^]が行頭の意味[$]が行末の意味
つまり行頭からいきなり行末の行を削除するという意味
$ cat test.txt ------------------------------------- 1行目 2行目 3行目 ------------------------------------- $ sed '/^$/d' test.txt ------------------------------------- 1行目 2行目 3行目 -------------------------------------
$ cat week.txt ------------------------------------- Sunday Monday Tuseday Wensday Thursday Friday Saturday ------------------------------------- $ sed '1,5d' week.txt ------------------------------------- Friday Saturday -------------------------------------
$ cat test.txt ------------------------------------- 私はpenです。 ------------------------------------- $ sed 's/pen/山本/g' test.txt ------------------------------------- 私は山本です。 -------------------------------------
$ cat test.txt ------------------------------------- aaaaa bbbbb ccccc ddddd eeeee fffff ggggg matsui ------------------------------------- $ sed '1s/^/1Line\ > /' test.txt ------------------------------------- 1Line aaaaa bbbbb ccccc ddddd eeeee fffff ggggg matsui -------------------------------------
$ cat test.txt AAAA BBBB CCCC DDDD
$ sed -i.bak 's/CCCC/ZZZZ/g' test.txt
元ファイルは、test.txt.bakとして保存されている
$ cat test.txt AAAA BBBB ZZZZ DDDD $ cat test.txt.bak AAAA BBBB CCCC DDDD
# cat a aaa bbb ccc # sed 's/\s//g' a aaabbbccc