Рабочий стол Ubuntu 20.04
Каталог содержит файлы с разными расширениями.
Некоторые из файлов имеют расширение .nfo. Они содержат метаданные о видеофайлах для системы Kodi.
Эти файлы .nfo содержат структурированный текст под заголовком Xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
Текст в файлах может содержать один, два или все три из следующих тегов:
<title>Some example text</title>
<showtitle>Some example text</showtitle>
<originaltitle>Some example text</originaltitle>
Есть ли команда (или сценарий), которая:
Находит эти теги в файлах .nfo в каталоге. Если они существуют и содержат текст, используйте заглавную первую букву каждого слова, содержащегося в каждом теге, и обновите тот же файл отредактированным содержимым.
?
Спасибо!
Предполагая, что файлы .ngo
представляют собой XML, вероятно, правильным способом сделать это будет использование XML-инструмента, такого как xmlstarlet
, для преобразования ваших данных в соответствии с подходящим шаблоном XLST.
Однако, если вам просто нужно что-то быстрое и грязное, то, возможно, с Perl:
perl -lpe 's@(?<=<title>)(.*)(?=</title>)@join " ", map { ucfirst $_ } split(/\s+/,$1)@e'
Пример. учитывая следующий file.ngo
, основанный на файле шаблона Kodi .nfo
$ cat file.nfo
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<movie>
<title>Some example text</title>
<showtitle>Some example text</showtitle>
<originaltitle>Some example text</originaltitle>
<userrating>0</userrating>
<outline></outline>
<plot></plot>
<tagline></tagline>
<runtime></runtime>
<mpaa></mpaa>
<uniqueid type="" default="true"></uniqueid>
<genre></genre>
<country></country>
<credits></credits>
<director></director>
<premiered></premiered>
<studio></studio>
<actor>
<name></name>
<role></role>
<order></order>
<thumb></thumb>
</actor>
</movie>
,затем
$ perl -lpe 's@(?<=<title>)(.*)(?=</title>)@join " ", map { ucfirst $_ } split(/\s+/,$1)@e' file.nfo
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<movie>
<title>Some Example Text</title>
<showtitle>Some example text</showtitle>
<originaltitle>Some example text</originaltitle>
<userrating>0</userrating>
<outline></outline>
<plot></plot>
<tagline></tagline>
<runtime></runtime>
<mpaa></mpaa>
<uniqueid type="" default="true"></uniqueid>
<genre></genre>
<country></country>
<credits></credits>
<director></director>
<premiered></premiered>
<studio></studio>
<actor>
<name></name>
<role></role>
<order></order>
<thumb></thumb>
</actor>
</movie>