Если файл представляет собой правильно -сформированный XML-файл, и вы хотите извлечь узлы <text>
в отдельные файлы, тогда это делается с помощью XMLStarlet:
#!/bin/sh
infile="$1"
xmlstarlet sel -t -v '//text/@id' -nl "$infile" |
while read id; do
xmlstarlet sel -t --var id="'$id'" -v '//text[@id = $id]' "$infile" >"$id.txt"
done
Учитывая имя пути к файлу, подобное следующему в командной строке,
<?xml version="1.0"?>
<root>
<text id="cade2296-1">
The first text, called "cade2296-1".
</text>
<text id="cafr3062-1">
The second text, called "cafr3062-1".
</text>
</root>
... это создаст два файла, cade2296-1.txt
и cafr3062-1.txt
, в текущем каталоге с содержимым двух тегов <text>
в исходном файле.
Имена файлов берутся из атрибута id
тегов <text>
. Эти значения id
сначала извлекаются из XML, а затем используются в цикле для извлечения соответствующих значений тегов.
Изменение -v
на -c
в вызове XMLStarlet внутри цикла даст вам копию тегов <text>
XML, а не только данные в теге.
Попробуйте эти команды.... Это поможет
"система ожидания моментального ожидания видит.загружено" А также «systemctl перезапустить snapd.seeded.service»
Введите их без кавычек.