- PR -

sedでやりた〜い

1
投稿者投稿内容
トーヤ
ベテラン
会議室デビュー日: 2003/06/12
投稿数: 63
投稿日時: 2003-08-19 17:30
トーヤです!いつもありがとうございます!!

今回、df -kコマンドの結果を編集したいと思っております。
(Solarisシステムで申し訳ございません。。。)
--------------------------------------------------------
# df -k
Filesystem kbytes used avail capacity Mounted on
/proc 0 0 0 0% /proc
/dev/md/dsk/d11 xxxxxxx xxxxxxx xxxxxx XX% /
fd 0 0 0 0% /dev/fd
/dev/dsk/d21 xxxxxxx xxxxxxx xxxxxx XX% /var
swap xxxxxxx xxxxxxx xxxxxx XX% /tmp
--------------------------------------------------------

まずdf -kの結果から、ファイルシステム名とマウント
ポイント名をawkを使って持ってきます。
--------------------------------------------------------
/proc /proc
/dev/md/dsk/d11 /
fd /dev/fd
/dev/dsk/d21 /var
swap /tmp
--------------------------------------------------------

次にsedを使って、/procとfdの行を消し、
且つ"/dev/"から始まっているエントリを
以下のように編集したいと思っております。
--------------------------------------------------------
d11 /
d21 /var
swap /tmp
--------------------------------------------------------

※ここで問題となるのが、swapのエントリはそのままに
したい(sedに処理させない)点と、"/dev/mk/dsk/"から
始まるエントリと"/dev/dsk/"から始まるエントリが
混在しているところです。
sedでうまく処理できますでしょうか?

よろしくお願いします!
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-08-19 17:43
引用:

トーヤさんの書き込み (2003-08-19 17:30) より:
まずdf -kの結果から、ファイルシステム名とマウント
ポイント名をawkを使って持ってきます。


awk使うんなら全部awkにやらせちゃえばいいのにと思うのは私だけでしょうか?
トーヤ
ベテラン
会議室デビュー日: 2003/06/12
投稿数: 63
投稿日時: 2003-08-19 21:05
まりりさん、ご回答多謝です!

おっしゃる通り!なのですが、
これはトーヤの知識不足が原因です・・・。
sedも基本的な部分しかわかっていなくて、
トーヤの知っている基本的な部分だけでは
今回したいことができなくて、、でも
それ以上にawkを知らないのです。。。

まりりさんはどのように実現されますか??
勉強させてくださいっ。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2003-10-24 18:05
df -k | awk '{ if($1 != "/proc" && $1 != "fd") print $1, $6 }' | sed 's/^.*dsk\///'
1

スキルアップ/キャリアアップ(JOB@IT)