У меня есть куча выходных, проходящих через sed и awk.
Как можно префикс вывода с START и суффикс ответа с END?
Например, если у меня есть
All this code
on all these lines
and all these
Как я мог получить:
START
All this code
on all these lines
and all these
END
?
Моя попытка была:
awk '{print "START";print;print "END"}'
но я получил
...
START
All this code
END
START
on all these lines
END
START
and all these
END
text-processing
sed
awk
regular-expression
Майкл Даррант
источник
источник
Ответы:
Это работает, как указано Джейсонврианом :
источник
Это можно сделать
sed
с помощью1i
означает, что я вставляю перед строкой 1;$a
означает , что в ppend после последней строки.$'…'
Синтаксис Баш-специфичны. В других оболочках вы можете сделать это с помощью:источник
Если вы уже используете sed, вы можете использовать,
1
чтобы соответствовать первой строке и$
последней строке (см . Ответ Скотта ). Если вы уже используете awk, вы можете использоватьBEGIN
блок для запуска кода перед первой строкой иEND
блок для запуска кода после последней строки (см . Ответ Майкла Дарранта ).Если все, что вам нужно сделать, это добавить верхний и нижний колонтитулы, просто используйте
echo
иcat
.В конвейере, чтобы запустить несколько команд, используйте,
{ … }
чтобы сообщить парсеру, что это одна составная команда.источник