Я наконец-то заставил это работать в скрипте Bash, который использовался для вставки уникальной метки времени в каждый элемент RSS-канала:
sed "1,/====RSSpermalink====/s/====RSSpermalink====/${nowms}/" \
production-feed2.xml.tmp2 > production-feed2.xml.tmp.$counter
Изменяет только первое вхождение.
${nowms}
- это время в миллисекундах, установленное скриптом Perl, $counter
- счетчик, используемый для управления циклом в скрипте, \
позволяет продолжить выполнение команды на следующей строке.
Файл считывается, и стандартный вывод перенаправляется в рабочий файл.
Как я понимаю, 1,/====RSSpermalink====/
сообщает sed, когда останавливаться, устанавливая ограничение диапазона, а затем s/====RSSpermalink====/${nowms}/
- это знакомая команда sed, которая заменяет первую строку второй.
В моем случае я поставил команду в двойных кавычках, потому что я использую ее в скрипте Bash с переменными.