globbing, sed или awk html-файлы

Я хотел создать скрипт, который я мог бы проверить .xhtml файлы для изображений и при необходимости добавить альт-теги. Во время поиска я нашел регулярные выражения и сделал man on glob но я не уверен, где и что искать в awk и sed . Что было бы лучше всего сделать следующее:

 <img class="something" width="something" height="something" src="folder/folder/image.png" /> <img id="something" src="folder/folder/file.png" /> 

Я хотел, чтобы желаемый скрипт обнаружил, что присутствует alt="" если не Alt имя файла.

Конец желаемого формата:

 <img class="something" width="something" height="something" src="folder/folder/image.png" alt="image"/> <img id="something" src="folder/folder/file.png" alt="file"/> 

Я знаю, что это можно сделать, но я не уверен, где читать об этом.

  • Найти <img с окончанием />
  • В пределах обнаружения тега img alt=""
  • если alt="" нет имени записи перед типом файла и вставить в ""

One Solution collect form web for “globbing, sed или awk html-файлы”

Один из способов использования perl с помощью анализатора XML::Twig :

 #!/usr/bin/env perl use strict; use warnings; use XML::Twig; use File::Spec; my $twig = XML::Twig->new( twig_handlers => { ## For each 'img' tag execute following function... 'img' => sub { ## If it doesn't have an 'alt' attribute... if ( ! $_->att_exists( 'alt' ) ) { ## Get value of 'src' tag. my $src = $_->att( 'src' ); return unless $src; ## Get last part of the path and remove extension. my $src_file = (File::Spec->splitpath( $src ))[2] || q{}; $src_file =~ s/\.[^.]+$//; ## Create the 'alt' attribute. $_->set_att( 'alt', $src_file ); } } }, pretty_print => 'indented', )->parsefile( shift )->print; 

Запустите его с вашим xml файлом в качестве уникального аргумента, например:

 perl script.pl xmlfile 
  • поиск точной строки в unix
  • Отображение файла в другом файле
  • Объединение альтернативных строк из двух файлов
  • Используйте sed, чтобы хранить только части файла и изменять его порядок (на основе синтаксиса textWrangler grep)
  • Поиск файла для числа, которое находится между двумя конкретными номерами
  • Извлечение с помощью grep / sed первого шаблона, а затем второго шаблона, который имел некоторые строки до и связанные с первым
  • bash merge 2 списки удаления дубликатов
  • Удалите кусок строк в соответствии с порядковыми номерами
  • Цифры с нулевым заполнением до 2 цифр с помощью sed
  • Удаление содержимого из файла
  • Команда sed: N не читает одну строку
  • Linux и Unix - лучшая ОС в мире.