sed は 'du' で始まる行を削除します。

sed は 'du' で始まる行を削除します。

ディスク容量を確認してみましょう。du -s

[root@iz2ze9wve43n2nyuvmsfx5z /]# du -s /* | sort -k 1|sed "/du/d"
du: cannot access ‘/proc/31265/task/31265/fd/4’: No such file or directory
du: cannot access ‘/proc/31265/task/31265/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/31265/fd/4’: No such file or directory
du: cannot access ‘/proc/31265/fdinfo/4’: No such file or directory
0   /bin
0   /dev
0   /lib
0   /lib64
0   /proc
0   /sbin
0   /sys
158784  /boot
16  /lost+found
2458148 /usr
37500   /etc
496 /run
4   /home
4   /media
4   /mnt
4   /opt
4   /srv
534680  /root
568 /tmp
935544  /var

だから私は以下を含む行を削除し始めました。du

1. sed "/du/d"

[root@iz2ze9wve43n2nyuvmsfx5z /]# du -s /* | sort |sed "/du/d" | head -n 6
du: cannot access ‘/proc/31563/task/31563/fd/4’: No such file or directory
du: cannot access ‘/proc/31563/task/31563/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/31563/fd/4’: No such file or directory
du: cannot access ‘/proc/31563/fdinfo/4’: No such file or directory
0   /bin
0   /dev
0   /lib
0   /lib64
0   /proc
0   /sbin

2. 数字で始まらない行を削除するsed "/[^\d]*/d"

    [root@iz2ze9wve43n2nyuvmsfx5z /]# du -s /* | sort -k 1|sed "/[^\d]*/d" | head -n 6
    du: cannot access ‘/proc/31612/task/31612/fd/4’: No such file or directory
    du: cannot access ‘/proc/31612/task/31612/fdinfo/4’: No such file or directory
    du: cannot access ‘/proc/31612/fd/4’: No such file or directory
    du: cannot access ‘/proc/31612/fdinfo/4’: No such file or directory

but return the lines I want to delete

3. sed "/\d*/d"

[root@iz2ze9wve43n2nyuvmsfx5z /]# du -s /* | sort -k 1|sed "/\d*/d" | head -n 6
du: cannot access ‘/proc/31703/task/31703/fd/4’: No such file or directory
du: cannot access ‘/proc/31703/task/31703/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/31703/fd/4’: No such file or directory
du: cannot access ‘/proc/31703/fdinfo/4’: No such file or directory

「du」を含む行を削除する方法は?

答え1

du: cannot access ...Steeldriverが述べたように、開始と終了の行は:No such file or directoryduのエラーメッセージです。 / procにこれらのディレクトリを列挙しますが、「ディスク」スペースを合計する前にそのプロセスはdu終了します。今は存在しません。

幸いなことにdu、これらのエラーはstderrに送信されるため、以下を使用してエラーをブロックして削除できます。

du -s /* 2>/dev/null | sort -n

sortまた、最後に最大サイズを使用して数値順に並べ替えると仮定するようにコマンドを変更しました。

関連情報