Как добавить вывод к определенной строке файла

Вместо инструмента обработки текста, такого как sed / grep, используйте инструмент, который понимает HTML.

Например, в xsh вы можете

open :F html file.html ;
delete //tr[td='TESTCASE-002'] ;
save :b ;

Вы должны сначала исправить файл, но - удалить неуместные и head > конечные теги.

0
13.06.2018, 14:18
3 ответа

Если вывод 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
0
28.01.2020, 02:18

Если у вас есть доступ к GNU sed, вы можете сделать целевое добавление к 3-й строке вашего входного файла следующим образом:

sh./myScript.sh | sed -i -e '3r /dev/stdin' myFile.txt
2
28.01.2020, 02:18

Это решение работает, сохраняя первые 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
2
28.01.2020, 02:18

Теги

Похожие вопросы