Попробуйте:
awk -F, '/^#/{f=$NF".txt";cmt=$0; next} {printf "%s\n%s\n",cmt,$0 >f; close(f)}' file
Применяется к вашему образцу входных данных:
$ awk -F, '/^#/{f=$NF".txt";cmt=$0; next} {printf "%s\n%s\n",cmt,$0 >f; close(f)}' file
После выполнения вышеуказанного в каталоге находятся следующие файлы:
$ ls
file importantname1.txt importantname2.txt importantname3.txt
Содержимое новых файлов:
$ cat importantname1.txt
#info1 info2 info3 ,importantname1
importanttext1
$ cat importantname2.txt
#info1 info2 info3 ,importantname2
importanttext2
$ cat importantname3.txt
#info1 info2 info3 ,importantname3
importanttext3
Awk читает строку входного файла по строке. Наш скрипт классифицирует эти строки как комментарии или нет. Для строк комментариев сохраняется имя файла и комментарий. Если нет комментариев, создается и печатается новый файл
`-F,
Это указывает awk использовать запятую в качестве разделителя полей при вводе. Таким образом, имя файла всегда будет последним полем.
/ ^ # / {f = $ NF ".txt"; cmt = $ 0; next}
Если строка начинается с #
, мы сохраняем последнее поле, $ NF
, плюс .txt
как имя файла f
. Вся строка комментария сохраняется как cmt
. Затем мы говорим awk пропустить остальные команды и перейти к следующей строке
, чтобы начать заново.
printf "% s \ n% s \ n", cmt, $ 0> f; close (f)
Для строк без комментариев мы печатаем последний просмотренный комментарий cmt
и текущую строку $ 0
в имя последнего просмотренного файла f
. Затем мы закрываем дескриптор файла для f
.
Если поля, которые должны использоваться в качестве имен файлов, содержат /
, ОС интерпретирует имена файлов как включающие каталоги.Чтобы избежать этого, мы можем заменить все /
на -
, используя gsub (/ \ //, "-", f)
следующим образом:
awk -F, '/^#/{f=$NF".txt";gsub(/\//, "-", f); cmt=$0; next} {printf "%s\n%s\n",cmt,$0 >f; close(f)}' file
Да, ваш ЦП поддерживает необходимые функции RAPL.
Гаджет питания не поддерживает ваш ЦП: код инициализации RAPL управляется таблицами, и он ничего не знает о процессорах Skylake (или даже о Broadwell). Он знает только о Sandy Bridge, Ivy Bridge и Haswell (и даже тогда не обо всех процессорах Haswell) ...
Гаджет мощности давно не обновлялся для Linux (текущая версия 2.5, но для OSX и Windows текущая версия 3.0.x) - но вы можете использовать turbostat --debug
, чтобы увидеть много той же информации, включая измерения RAPL для каждого ядра и т.д. Вот man page, но man page в вашей системе, скорее всего, будет более актуальной.