Вместо инструмента обработки текста, такого как sed / grep, используйте инструмент, который понимает HTML.
Например, в xsh вы можете
open :F html file.html ;
delete //tr[td='TESTCASE-002'] ;
save :b ;
Вы должны сначала исправить файл, но - удалить неуместные
и head >
конечные теги.
Если вывод myScript.sh
представляет собой одну или несколько строк, и вы хотите вставить их как новые строки между строками 3 и 4 исходного файла:
$ sh./myScript.sh | perl -i -pe 'print <STDIN> if $.==4' myFile.txt
В приведенном выше примере измените <STDIN>
на <STDIN>,"\n"
, если вывод myScript.sh
не заканчивается новой строкой.
Если вывод myScript.sh
представляет собой одну строку, и вы хотите добавить ее в конец третьей строки, не вставляя новую строку:
$ sh./myScript.sh | perl -i -ple 'chomp($_.=<STDIN>) if $.==3' myFile.txt
Если у вас есть доступ к GNU sed, вы можете сделать целевое добавление к 3-й строке вашего входного файла следующим образом:
sh./myScript.sh | sed -i -e '3r /dev/stdin' myFile.txt
Это решение работает, сохраняя первые 3 строки в /tmp/first
, сохраняя остальную часть файла в /tmp/last
, сохраняя вывод myScript.sh
в /tmp/middle
, затем cat
объединяя их вместе и перезаписывая. оригинал/tmp/file
:
file=/tmp/file
sed -n '1p;2p;3p' "${file}" >/tmp/first
sed '1d;2d;3d' "${file}" >/tmp/last
./myScript.sh >/tmp/middle
cat /tmp/first /tmp/middle /tmp/last >/tmp/file