Вот короткая awk острота:
awk '/^\[/ {ofn=$2 ".txt"} ofn {print > ofn}' input.txt
Как это работает?
/^\[/
строки соответствий, запускающиеся с левой квадратной скобки, и{ofn=$2 ".txt"}
устанавливает переменную на второе white-spaced-delimited слово как наше имя выходного файла. Затемofn
условие, которое оценивает к истинному, если переменная установлена (таким образом то, чтобы заставлять строки перед Вашим первым заголовком быть проигнорированной){print > ofn}
перенаправляет текущую строку в указанный файл.Обратите внимание, что все пробелы в этом awk сценарии могут быть удалены, если компактность делает Вас счастливыми.
Обратите внимание также, что для вышеупомянутого сценария действительно нужны заголовки раздела, чтобы иметь пробелы вокруг а не в них. Если Вы хотели смочь обработать заголовки раздела как [foo]
и [ this that ]
, Вам было бы нужно очень немного больше кода:
awk '/^\[/ {sub(/^\[ */,""); sub(/ *\] *$/,""); ofn=$0 ".txt"} ofn {print > ofn}' input.txt
Это использует awk's sub()
функционируйте для разделения продвижения и запаздывания square-brackets-plus-whitespace. Обратите внимание, что на стандарт awk поведение, это свернет пробел (разделитель полей) в одиночный пробел (т.е. [ this that ]
сохраняется к "this that.txt"
). Если поддержание исходного пробела в Ваших выходных именах файлов важно, можно экспериментировать установкой FS.
ls
берет его настройки цветов от переменной среды LS_COLORS
. dircolors
просто удобный способ генерировать эту переменную среды. Чтобы иметь эту переменную среды вступают в силу в масштабе всей системы, помещают его в файл запуска Вашей оболочки.
Для bash
, Вы вставили это /etc/profile
:
# `dircolors` prints out `LS_COLORS='...'; export LS_COLORS`, so eval'ing
# $(dircolors) effectively sets the LS_COLORS environment variable.
eval "$(dircolors /etc/DIR_COLORS)"
Для zsh
, Вы или вставили его /etc/zshrc
или устройте zsh
читать /etc/profile
на запуске. Ваше распределение могло бы иметь zsh
уже сделайте это. Я просто поднимаю это для указания на ту установку dircolors
для действительно все зависят от оболочки, которую они используют.
Что касается где dircolors
получает его настройки от, когда Вы не указываете файл, он просто использует некоторые встроенные значения по умолчанию.
Можно использовать xterm
256 цветных управляющих кодов в Вашем dircolors файле, но знать, что они будут только работать на xterm
совместимые терминалы. Они не будут работать над текстовой консолью Linux, например.
Формат для 256 цветных управляющих кодов 38;5;colorN
для основных цветов и 48;5;colorN
для цветов фона. Так, например:
.mp3 38;5;160 # Set fg color to color 160
.flac 48;5;240 # Set bg color to color 240
.ogg 38;5;160;48;5;240 # Set fg color 160 *and* bg color 240.
.wav 01;04;05;38;5;160;48;5;240 # Pure madness: make bold (01), underlined (04), blink (05), fg color 160, and bg color 240!
Где делает команду
dircolors --print-database
возьмите настройки от, когда никакой файл не будет существовать.
Согласно руководству, это использует предварительно скомпилированную базу данных в отсутствие файла.
Если файл указан, dircolors читает его для определения который цвета использовать для который типы файлов и расширения. Иначе предварительно скомпилированная база данных используется. Для получения дополнительной информации на формате этих файлов, выполненных‘
dircolors --print-database
’.
Для изменения настроек для всех Вы могли создать a /etc/dircolors
файл и добавляет следующее к /etc/bashrc
:
d=/etc/dircolors
test -r $d && eval "$(dircolors $d)"
Linux выбрал консольные цвета фона с dircolors:
Ваш dircolors файл управляет цветами для слов, которые появляются через ls на консоли. Найдите это .dircolors
файл для Вашего распределения, ссылки на справку:
http://www.linuxfromscratch.org/blfs/view/svn/postlfs/profile.html
Для меня на Fedora 17 мой dircolors файл: /etc/DIR_COLORS
Копия /etc/DIR_COLORS
в Ваш /home/el/.dircolors
каталог. Создайте его, если это не существует.
Отредактируйте/home/el/.dircolors, ищите текст "dir".
Измените это:
DIR 01;34 # directory
К этому:
DIR 01;36 # directory
Сохраните и закройте и перезапустите оболочку. Каталоги идут от темно-синего на черном цвете (нечитабельном) яркому чирку на (читаемом) черном цвете.
/etc/DIR_COLORS
в дистрибутиве OP, Debian. И он уже знает о ~/.dircolors
, это не было вопросом
– MestreLion
29.01.2015, 10:01
.mp3 00;36
для использования color126 от upload.wikimedia.org/wikipedia/en/1/15/Xterm_256color_chart.svg – user1968963 09.10.2013, 21:26