Подключите iMac к SAN / NAS с помощью Thunderbolt

Это легко сделать с помощью небольшого скрипта awk.

#!/usr/bin/awk -f 
# Write sections of the input file to separate files
# Written by PM 2Ring 2016.06.14

BEGIN{outbase = "outfile"}

/^Model/{outname = outbase $2}

{print > outname}

outbase — это имя базового файла. К нему добавляется номер модели, поэтому для файла образца будут созданы выходные файлы outfile1, outfile2 и т. д. С незначительным изменением скрипта вы можете установить outbase из командной строки, используя опцию awk -v.

Суть этого скрипта

/^Model/{outname = outbase $2}

Он гласит: Если текущая строка начинается с «Model», добавьте содержимое поля #2 в строку outbase, назначив результат outname.

По умолчанию awk обрабатывает файл строка за строкой, разбивая каждую строку на поля, используя пробелы в качестве разделителя полей.

{print > outname}

просто выводит текущую строку в файл, имя которого хранится в outname.


Этот скрипт достаточно мал, чтобы записать все это в командной строке:

awk 'BEGIN{outbase = "outfile"}; /^Model/{outname = outbase $2}; {print > outname}' infile.txt

На самом деле вы можете предоставить несколько аргументов входного файла, и они будут обрабатываться правильно, если у вас нет дублированных номеров модели.

1
29.12.2016, 00:04
0 ответов

Теги

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