Mam sporo wyników przechodzących przez sed i awk.
Jak mogę poprzedzić wyjście słowem START, a sufiksu odpowiedź - END?
Na przykład, jeśli mam
All this code
on all these lines
and all these
Jak mogę uzyskać:
START
All this code
on all these lines
and all these
END
?
Moja próba była:
awk '{print "START";print;print "END"}'
ale mam
...
START
All this code
END
START
on all these lines
END
START
and all these
END
text-processing
sed
awk
regular-expression
Michael Durrant
źródło
źródło
Odpowiedzi:
Działa to, jak wskazał jasonwryan :
źródło
Można to zrobić za
sed
pomocą1i
środki i nsert przed linią 1;$a
Oznacza to ppend po ostatnim wierszu.$'…'
Składnia jest bash specyficzne. W innych powłokach powinieneś być w stanie to zrobić za pomocą:źródło
Jeśli już używasz sed, możesz użyć,
1
aby dopasować pierwszą linię i$
dopasować do ostatniej linii (patrz odpowiedź Scotta ). Jeśli już używasz awk, możesz użyćBEGIN
bloku do uruchomienia kodu przed pierwszą linią iEND
bloku do uruchomienia kodu po ostatniej linii (patrz odpowiedź Michaela Durranta ).Jeśli wszystko, co musisz zrobić, to dodać nagłówek i stopkę, po prostu użyj
echo
icat
.W potoku, aby uruchomić wiele poleceń, użyj,
{ … }
aby powiedzieć parserowi, że jest to jedno polecenie złożone.źródło