как распечатать все значения атрибутов атрибутов title во всех моих XML-файлах - PullRequest
0 голосов
/ 23 июля 2010

Интересно, знает ли anybode, какую команду или bash-script-code я могу использовать для распечатки всех значений атрибутов title во всех моих XML-файлах (в текущем каталоге).

Я используюcygwin и имеют имена файлов, содержащие пробелы.

(Я гуглял и есть много предложений по загрузке других утилит. Если я могу избежать, это будет полезно для меня. Например, я установил sgrep, а затем получил эту ошибку: sh:m4: команда не найдена система ("m4 -s") вернула ненулевой статус выхода (32512). Препроцессор возвратил пустой файл)

Если есть программа Xpath, которую можно бесплатно загрузить в Windows и использовать какотдельная программа поиска, это тоже было бы здорово =)

Заранее спасибо за помощь / T

Ответы [ 3 ]

1 голос
/ 23 июля 2010

Если тег и атрибут title находятся в одной строке, но между различными экземплярами вашего тега есть переводы строк, вам может помочь следующее.Например,

<mytag someAttr="blah" Title="The Title goes here" ...

Затем вы можете сделать что-то вроде следующего, чтобы найти интересующие теги, которые содержат атрибут Title:

grep -ro '<mytag[ \t].*Title="[^"]*"' /path/to/directory/to/search

В качестве альтернативы, вы должны иметь возможностьиспользовать find и xargs:

find /your/search/path -iname '*.xml' -print0 | \
    xargs -0 -r grep -ro '<mytag[ \t].*Title="[^"]*"'

Теперь, когда вы знаете, что у вас есть правильный тег и соответствующий ему атрибут Title, вам просто нужен атрибут Title, поэтому вы можете использовать grep-o опция для вывода только данных, соответствующих регулярному выражению с последующим вырезанием для извлечения значения заголовка:

grep -ro '<mytag[ \t].*Title="\([^"]*\)"' /path/to/directory/to/search | \
    grep -o 'Title="[^"]*"' | cut -f2 -d'"'
0 голосов
/ 26 января 2011

вам нужно установить препроцессор "m4" в cigwin, который заставит ваш sgrep работать

Я столкнулся с той же проблемой, когда установка "m4" разрешила мою проблему в cygwin

0 голосов
/ 23 июля 2010

У вас установлен xml_grep?Это бесплатно и входит в стандартную комплектацию моего CentOS здесь.Он может взять выражение xpath и распечатать результаты.

...