使用SED通过命令输出替换特定行

时间:2016-05-13 15:11:10

标签: unix sed csh

我正在尝试为top命令编写一个包装器,并用一些更有用的信息替换它给我的信息。更具体地说,我想用swap命令中的信息替换它提供的内存使用信息。

这是我的代码:

#!/usr/bin/csh

# files and directories
# /user/bin for who, cut, sort, ps, sed, cat, rm, mv, grep, echo, hostname, swap
set ubin="/usr/bin"

# tmp files and directory
set dir="/tmp"
set TopData=$dir/"Topdata"
set SwapData=$dir/"SwapData"

while ( 1 == 1 )
        swap -sh > $SwapData
        $ubin/top -b |sed -e "5s@.*@$SwapData@g" > $TopData
        $ubin/clear
        $ubin/cat $TopData
        $ubin/sleep 2
end

在这个例子中,我试图使用SwapData作为临时文件来保存信息,但是$ SwapData只是给出了文件的路径而不是数据显然我不能直接在sed中使用swap命令(或任何命令这个问题也是。

1 个答案:

答案 0 :(得分:0)

在你的循环中试试这个:

SwapData=`swap -sh`

另外,你为什么要写csh