Выбор раздела файла

В вашем configuration.nix,

{ pkgs,... }:

{
 ...

  programs.fish.enable = true;

  users.extraUsers.<myusername> = {   
   ...  
    shell = pkgs.fish;
   ...
  };
}

Далее следует nixos-rebuild switch.

2
27.11.2019, 19:22
3 ответа
  • если это "чистая" линия (без табуляции или белая ), удалите ее также с помощью/^$/
  • для «логического» пустого использования/^\s*$/

    sed -n -e '/^title2:/,/^[a-zA-Z]/ { /^[a-zA-Z]/ d ; /^$/ d ; s/^[ \t]*// ; p }' 
    

где

  • /^$/соответствует началу -строки, концу -строки -
  • /^\s*$/соответствует началу -строки, отсутствию пробела или табуляции, концу -строки -
0
27.01.2020, 22:16

Я использовал пробел и получил

sed -ne '/^title2$/,/^[a-zA-Z]/ { /^title2$/ { n; h; b; } ; /^[a-zA-Z]/ d; H; x; s/[ \t]*//; P; s/.*\n//; x }'

, который, кажется, правильно обрабатывает случаи, которые мне нужны.

1
27.01.2020, 22:16
sed -n '/title2/,/^\S/ { //b; /^\s*$/ { N; /\n\S/q; P; D }; s/^\s*//; p }'

Сначала я сделал это, чтобы привлечь внимание @Archemar. Я был бы очень признателен, если бы вы могли пожалуйста, ответить намой комментарий в этом посте , когда у вас будет время. Даже если ответ «не знаю». БЛАГОДАРЮ.

По крайней мере, в моей оболочке bash он работает без -e. Просто интересно, зачем это вообще нужно? И если\sили\Sне поддерживаются, вы можете заменить их на [ \t]и [^ \t]соответственно.

Разбивка для людей, которые были так же невежественны, как и я, когда впервые увидели этот вопрос:

  • -nотключает автоматическую печать
  • /title2/,/^\S/- это диапазон для sedдля поиска в (от строки первого вхождения строки " title2" до следующей строки, которая начинается с символа пробела, отличного от -[т.е. title3] включительно)
  • {просто означает применение прилагаемых команд к диапазону или шаблону, который я только что указал
    • //bпозволяет не применять следующие команды к началу и концу диапазона.
      Буквально, если вы соответствуете title2или ^\S, просто перейдите в конец скрипта(b)(обработайте следующую строку в файле, если остались какие-либо ), потому что в GNUsed(BSD говорит то же самое, не уверен, что есть другая версияsed)

      ‘//’ repeats the last regular expression match

    • /^\s*$/соответствует «логически пустым» строкам в диапазоне.
    • {
      • N; /\n\S/q;Итак, если это "логически пустая" строка,Nдобавляет следующую строку в пространство шаблонов, а затем, если эта следующая строка является следующим заголовком, она полностью прекращает обработку (q), поэтому ни «логически пустая» строка, ни следующий заголовок не печатаются.
      • P; DЕсли за «логически пустой» строкой не следует следующий заголовок, то просто печатается «логически пустая» строка (P), а затем просто "логически пустая" строка удаляется из пространства шаблонов, оставляя следующую строку, которая была добавлена ​​в пространство шаблонов с помощью Nдля обработки с начала скрипта(D)
    • }
    • s/^\s*//; pубирает пробелы и табуляции в начале строки и печатает отформатированную строку
  • }

@Archemar пожалуйстаПОМОГИТЕ

0
27.01.2020, 22:16

Теги

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