xml2 < date_list | egrep "pubDate" | grep -Po "(?<=\=).*" \
| while read L
do
echo $L
done
читает разбивает строки и не разбивает слова, если их не просят. :-)
Однако работа с XML с помощью регулярных выражений - это нож в перестрелку. Очень легко создать допустимый XML, который вышеуказанный конвейер либо пропустит, либо захватит неправильно.
Если вы имеете дело с большим количеством XML, вы действительно хотите освоить парсер SAX.
Вообще говоря, ${pkgs.nameOfPackage}
является предпочтительным синтаксисом.
В вашем конкретном примере m mkdir
является частью пакета coreutils; какой (каламбур означает ), вы можете определить с помощью команды readlink $(which mkdir)
. Итак, ваша строка должна читаться:
ExecStartPre=${pkgs.coreutils}/bin/mkdir BLAH BLAH BLAH
Хотя coreutils всегда устанавливается AFIK, приятным преимуществом синтаксиса ${pkgs.nameOfPackage}
является то, что вам не нужно устанавливать пакет nameOfPackage
; Никс сделает это за вас.
Во-первых, вам не нужны эти пробелы и двойные кавычки.
ExecStartPre=/run/current-system/sw/bin/mkdir -p %h/.config/example/pending
Во-вторых, пробовали ли вы эту команду в своей системе, как она написана? В твоей скорлупе:
mkdir -p ~/.config/example/pending
Наконец, %h относится к дому пользователя. Но, возможно, ваша система нацелена на другое место, так как команда mkdir находится не в том месте. echo ~
, чтобы увидеть свой домашний каталог.