Как добавить диск в пул ZFS

Цикл forили whileна самом деле не нужен. Любая из этих awkкоманд будет работать:

awk 'BEGIN {print "title"}
           {print "total",$1","$2}
       END {print "end"}' list

или:

awk 'BEGIN {print "title"}
           {printf "total %s,%s\n", $1, $2}
       END {print "end"}' list

BEGIN{print "title"}печатает слово titleодин раз перед чтением данных в файле.

{print "total",$1","$2}печатает слово total, за которым следует запятая без кавычек, представляющая пробел между значениями в столбцах столбцов, а затем сами столбцы. Этот блок выполняется для каждой входной строки.

END{print "end"}печатает слово endи КОНЕЦ файла. END говорит ему выполнить блок, когда окончательный ввод из файла будет прочитан.

Для второй команды:

Единственная разница:

{printf "total %s,%s\n", $1, $2}

Здесь используется printfвместо print, где первый аргумент определяет формат.

%s,%sговорит ему напечатать значения $1и $2, разделенные запятой, а \nпредставляет новую строку, так что он переходит к следующей строке и печатает значения $1и $2до конца файла.

Лично я бы использовал вторую команду с printf, так как вы можете просто использовать один набор кавычек вместо того, чтобы заключать в кавычки totalи запятую. Кроме того, он более модульный, как вы обнаружите, прочитав его справочную страницу. Я включаю только две команды, чтобы показать два разных способа.

Выход

title
total AAA,111
total BBB,222
total CCC,333
end
0
04.07.2020, 00:50
0 ответов

Теги

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