Не удается ssh к компьютеру за маршрутизатором

Здесь вы найдете + awk + numfmt версию. Поскольку -ls - это флаг, чтобы найти команду, а не экземпляр ls, вы также не можете использовать -lh. Однако, если вы настаиваете на использовании флага -ls с помощью find, мы также можем попробовать форматировать размер файла в удобочитаемую форму. Размер файла на выходе find с флагом -ls - это поле # 7, таким образом, используя двусторонний io awk, мы просто преобразуем это поле в читаемую человеком форму и заменим его обратно.

find / -user web132 -ls | 
 awk '{ command="numfmt --to=iec "; command $7 | getline result; $7=result;print; close(command) }'
[d2 ] Вот пример с моей домашней папкой:

$ find . -maxdepth 1 -user xieerqi -ls | awk '{ command="numfmt --to=iec "; command $7 |& getline result; $7=result;print; close(command) }'   
3018363 4 drwxr-xr-x 43 xieerqi xieerqi 4.0K Jun 22 00:33 .
3409153 4 drwx------ 3 xieerqi xieerqi 4.0K Jun 22 00:33 ./.gconf
3018459 4 -rw-rw-r-- 1 xieerqi xieerqi 756 Jun 11 00:08 ./record
3018368 16 -rw------- 1 xieerqi xieerqi 13K Jun 21 23:14 ./.bash_history
3018364 12 -rw-r--r-- 1 xieerqi xieerqi 8.8K May 28 03:59 ./examples.desktop
3018535 4 -rw-rw-r-- 1 xieerqi xieerqi 64 Jun 21 16:04 ./testfile.txt
3018473 4 drwxrwxr-x 2 xieerqi xieerqi 64 Jun 16 23:28 ./netmanager

Примечание: из обсуждения в комментариях ниже, кажется, что mawk имеет проблемы, но gawk (GNU awk) работает отлично. Я вычислил подход к mawk, который просто использует замену $ 7 не как аргумент, а как часть команды, которая впоследствии расширяется. Вот что я имею в виду:

find . -maxdepth 1 -user xieerqi -ls | mawk '{command="numfmt --to=iec "$7; command | getline var; $7=var;print }'

0
задан 17 April 2018 в 17:08

0 ответов

Другие вопросы по тегам:

Похожие вопросы: