Eu tenho input.txt
abcd
abcg
Para selecionar linhas começando com 'a' e terminando com 'g' eu escrevo:
cat input.txt | awk '/^a/' | awk '/g$/{print $0}'
Como posso combinar as expressões regulares ^a
e g$
poder usar apenas uma instância de awk
?
Basta usar um único regex que corresponda ao início e ao fim:
Ou, se você realmente quiser usar dois, pode combiná-los com
&&
:Não há necessidade de awk, apenas grep:
Para tornar a resposta o mais genérica possível usando awk , aqui está uma maneira alternativa de executar a ação desejada, onde a string padrão é passada como variável na linha de comando.
Os dados de teste de demonstração estão incorporados neste exemplo.
Usando o roteiro
e executando o comando
a saída é
com outras linhas ignoradas.
Nota especial: o "^" abd "$" deve ser passado literalmente como parte das variáveis awk.