awk (assumindo aqui o GNU ou busybox awk
para os operadores de limite \<
, \>
word):
Amostra estendida file
:
I am ok.
I am fine.
all good.
am I sleeping?
how's that
I am sure
about that
and think on.
For that I am now
awk '{ printf "%s%s",(NR==1? "": (!/\<am\>/? OFS:ORS)),$0 }END{ print "" }' file
-
"%s%s"
- string de formato com 2 especificações. O primeiro%s
deles se para o delimitador "principal" do item em potencial:- para o primeiro registro (
NR==1
), será""
(string vazia) - para registros que não contêm
am
word -OFS
(separador de campo de saída, ou seja, espaço) - para registros contendo
am
word -ORS
(separador de registro de saída, ou seja, a nova linha por padrão)
- para o primeiro registro (
A saída:
I am ok.
I am fine. all good.
am I sleeping? how's that
I am sure about that and think on.
For that I am now