Outro sed
:
sed -ne's/^:\([[:upper:]]*\).* $//p' <in >out
Este comando tenta fazer uma s///
ubstitution por linha de entrada. A menos que seja bem-sucedida, -n
othing é p
rinted para saída. Portanto, o /regexp/
deve corresponder a uma linha e a s///
ubstitution deve ocorrer antes de sed
%% dop
rint, porque seu único comando p
rint é um sinalizador na declaração s///
ubstitution.
Para corresponder a uma linha de entrada, primeiro é preciso coincidir com :
dois pontos na ^
cabeça da linha, seguido imediatamente por *
zero ou mais caracteres alfabéticos de[[:upper:]]
, seguido de *
zero ou mais de qualquer outro tipo de caractere .
, que deve ser seguido por pelo menos um espaço na linha $
da linha.
Quando ele corresponder à sequência de [[:upper:]]
-chars que são referenciados no \(
sub group \)
é usado para substituir a linha inteira como salva em .
Mas isso não funciona para sua entrada de exemplo porque seu exemplo começa com um espaço e termina sem um. Um regexp que funcionará para o seu exemplo:
sed -ne's/^ *:\([[:upper:]]*\).*//p'
O que é basicamente o mesmo, mas em vez de procurar um espaço definido na cauda da linha, ele procura por qualquer número de espaços na cabeça.
INPUT
FORWARD
OUTPUT