[Linux] => [Linuxコマンド(R〜Z)]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク

sedコマンドは置換などに使用されます。


[書式]
sed オプション コマンド ファイル
sed オプション -e コマンド1 -e コマンド2 ファイル
sed オプション -f スクリプト ファイル


[主なオプション]
-e 次にくる因数はコマンドとみなす
-f 次にくる因数はスクリプトとみなす
-g 対象ファイル全体に適用する
-i 上書きモード(拡張子がある場合はバックアップをとる)

[主なコマンド]
d 行削除
s s/パターン/置換/で指定するパターンに対して置換する
g 最初のパターンだけでなく、すべて置換する
w file 置換できたファイルをファイルfileに保存
y trコマンド同様の置換を行う


[使用例]
#word.txtの30行目までを表示

sed 30q word.txt


#文字列 string を含む行を表示

sed -n '/string/p' file.txt


#index.htmlのSTRING_AをSTRING_Bに置換。(index.html.bakにバックアップ)

sed -i.bak 's/STRING_A/STRING_B/g' ./index.html


#10 行目から STRING を含む行までを表示

sed -n '10,/STRING/p' file.txt


### ksknet.netから</VirtualHost>までを表示

sed -n '/### ksknet\.net/,/<\/VirtualHost>/p' httpd.conf.20031017175947


#string を含む行から STRING を含む行までを表示

sed -n '/string/,/STRING/p' file.txt


#1〜9行目を削除する

sed '1,9d' sample.txt


#'#'で始まるコメント行を削除する。

sed '/^#/d' sample.txt


#空行を削除

sed '/^$/d' ./sample.txt


#file1.txt の 15 行目から 35 行目までを削除して file2.txt に保存する。

sed '15,35d' file1.txt > file2.txt


#abcをABCに置換する

sed s/abc/ABC/sample.txt


#すべての行に">"を挿入する

sed 's/^/\>/g' sample.txt


#@記号をすべて削除する。

sed 's/@//g' sample.txt


#マッチングした文字列abc@example.comを取り出す(マッチングした文字列は\1で取り出せる)

echo 'abc <abc@example.com>' | sed 's/.*<\(.*\)>/\1/'


#スクリプト「sedcom」に記されたコマンドを順次実行する。

sed -f secom sample.txt


#ファイルconvert.plを表示

sed -n p convert.pl


#pkgtools.confの436行目の末尾に  || -v -L /var/log/ports/ を追加

sed '436s/$/ ||\ -v \-L \/var\/log\/ports\//g' /usr/local/etc/pkgtools.conf


#pkgtools.confの436行目をPORTUPGRADE_ARGS = ENV['PORTUPGRADE'] || '-v -L /var/log/ports/'に置換

sed "436s/.*/PORTUPGRADE_ARGS = ENV[\'PORTUPGRADE\'] \|\| \'\-v \-L \/var\/log\/ports\/\'/g" /usr/local/etc/pkgtools.conf



関連記事
shasum - メッセージダイジェストの生成及びチェック
ssh-keygen - SSH鍵の作成及び管理
rpcinfo - RPCサービスの一覧を表示
xvidtune - X Windowsの画面調整
seq - シーケンス番号の表示
tcpdump - ネットワークを流れるトラフィックのチェック
sysctl - カーネルパラメータの設定
setenv - 環境変数設定
up2date - パッケージ管理コマンド
sort
smbstatus - sambaのステータスをチェック
su - ユーザの切り替え
smbmount - ファイル共有
snmpwalk - MIBツリーの値を順次取得
snmpconf - snmpd.confの作成
passwd - ユーザパスワードの変更
vmstat - プロセスなどの稼動状況のレポート
smbpasswd - samba パスワードの変更
type - コマンドの種類を表示
saslpasswd2 - saslデータベースへのユーザ登録
umask - マスク値の設定
unset - シェル変数の削除
showmount - NFSサーバのマウント情報の表示
saslpasswd - saslデータベースへのユーザ登録
sync ディスクキャッシュの強制書き出し
visudo - sudo設定ファイルの編集
rmdir - ディレクトリの削除
updatedb - locateコマンドで使用するデータベースの更新
vacation - 自動返信メールの送信
service - サービスの起動と停止
repquota - quota情報の一覧表示
setquota - コマンドラインでquotaを設定
yum - パッケージのアップデート
scp - ファイル転送コマンド
unexpand - ファイル中のスペースをタブに変換
runlevel - 現在のランレベルを表示
time - コマンドの実行時間を計測
tree - ツリー形式にてファイルを表示
ulimit - システムリソースを制限する
uname - システム情報を表示
zip/unzip - zipファイルの圧縮・解凍
script - 入力コマンドやその出力結果をログに記録
tac - ファイルの内容を逆順に表示
write - ログインしている他のユーザにメッセージを送る
tail - ファイルの終わりを表示
whois - ドメインの登録情報を見るには
userdel - ユーザの削除
useradd - ユーザの追加
touch - ファイルのタイムスタンプを変更
vipw - パスワードファイルを編集する
sar - 10分毎のシステム稼動状況を表示
top - 現在のシステムの状況を表示
whereis - コマンドのパスを調べる
rpmbuild - RPMを作成
wget - ファイルをダウンロード
wc - ファイルの行数、単語数、サイズを調べる
tar - アーカイブを作成
stat - ファイルのステータスを表示
sed - ストリーミングエディタ
rpm - RPMパッケージの操作
広告