メモリ領域を解放する非常に単純なシェル スクリプトを作成しようとしています。このために、私はコマンドを使用しています
$ ps xopmem o%c
実行中のプロセスのリストを、そのメモリ使用率とともに出力します。ここで、(最初のフィールドの) 値が 5.0 より大きい行のみを除外したいと考えています。どうやってやるの?私はSEDを使用することをお勧めします。
PS: インターネットでこのトピックをググってみましたが、何も見つかりませんでした。どんな助けでも大歓迎です。
メモリ領域を解放する非常に単純なシェル スクリプトを作成しようとしています。このために、私はコマンドを使用しています
$ ps xopmem o%c
実行中のプロセスのリストを、そのメモリ使用率とともに出力します。ここで、(最初のフィールドの) 値が 5.0 より大きい行のみを除外したいと考えています。どうやってやるの?私はSEDを使用することをお勧めします。
PS: インターネットでこのトピックをググってみましたが、何も見つかりませんでした。どんな助けでも大歓迎です。
sed
は数値比較を行うことができません。ツールを 1 つ上に移動する必要があります。つまり、次のようになりますawk
。
ps xopmem o%c | awk '$1 > 5.0'
つまり、最初のフィールドが 5 より大きい場合、デフォルト ブロックを実行します{ print $0 }
。
一方通行。-n
swithは自動的に印刷されないようにし、正規表現は先頭のスペースと5.0より大きい任意の数値に一致します。このp
命令は、前の正規表現に一致する行を出力します。
ps xopmem o%c | sed -ne '/^ *[5-9]\.[0-9]/ p'
ps xopmem o%c | sort -nr | \
while read line
do v=$(echo $line | cut -d' ' -f1);
[[ $v < 5 ]] && break;
echo $line;
done