Isso é igualmente direto em qualquer uma das três ferramentas que você mencionou ( awk
, sed
ou grep
) ou usando qualquer outra ferramenta que tenha suporte para expressões regulares. Aqui está uma expressão regular que corresponde ao padrão que você deseja:
'^\s*class [A-Z]'
Ele corresponde a uma quantidade arbitrária de espaço em branco no início da linha, seguida pela string class
, seguida por uma letra maiúscula. Você poderia aplicá-lo usando este comando (parcial) grep
:
grep -Pq '^\s*class [A-Z]'
Para testar, você pode tentar algo como o seguinte:
user@host:~$ \
if echo ' class Camel' | grep -Pq '\s*class [A-Z]'; then \
echo TRUE; \
else \
echo FALSE; \
fi
TRUE
user@host:~$ \
if echo ' class camel' | grep -Pq '\s*class [A-Z]'; then \
echo TRUE; \
else \
echo FALSE; \
fi
FALSE
Se você quiser armazenar o resultado na variável TEST
, poderá fazer algo como o seguinte:
if echo ' class camel' | grep -Pq '\s*class [A-Z]'; then \
TEST=TRUE; \
else \
TEST=FALSE; \
fi