Вывести определенное слово в bash

Можно также использовать команду du с некоторыми аргументами и использовать sort

Я использую следующее:

$ du -hsc /path/to/file

От man du

-h, --human-readable
      print sizes in human readable format (e.g., 1K 234M 2G)
-s, --summarize
      display only a total for each argument

-c, --total (I USE IT FOR EXTRA INFO)
      produce a grand total

To sort

$ du -hsc /path/to/file | sort -h

От man sort

-h, --human-numeric-sort
      compare human readable numbers (e.g., 2K 1G)
0
22.03.2018, 11:24
2 ответа

Используйтеprintf:

printf '| %s | %s | %s | %s | %s |\n' "$host" "$hostname" "$Pub_IP" "$Kernel_Version" "$Deb_Version" >info.txt

%sв строке формата printf(первый аргумент дляprintf)являются строковыми заполнителями, и каждый из них будет заменен другими аргументами, заданными для printf, в свою очередь.

1
28.01.2020, 02:18

Если вы заключаете строки в кавычки или экранируете их, вы можете включать вертикальные черты:

echo "| ${host} | ${hostname}..."

Вы, конечно, можете использовать и printf(Я так понимаю, это то, о чем вы спрашиваете в конце своего вопроса):

printf '| %s | %s | %s...' "${host}" "${hostname}" "${Pub_IP}"...

Вы можете воспользоваться повторяющимся поведением printfдля упрощения строки формата.:

printf '| %s ' "${host}" "${hostname}" "${Pub_IP}"...; printf '|\n'

Это повторит последовательность | %sстолько раз, сколько необходимо, и завершит строку вертикальной чертой и возвратом каретки.

3
28.01.2020, 02:18

Теги

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