Use o grep:
grep abc something.txt
Observe também que usar $2
no shell refere-se ao segundo argumento (como você parece saber), mas em awk
é diferente. Sua pergunta parece mostrar um mal-entendido disso, então eu vou esclarecê-lo.
O shell requer que o $
se refira ao valor de uma variável. Então você se refere a uma variável chamada myvar
escrevendo $myvar
.
Em awk
para se referir a uma variável chamada myvar
, basta usar seu nome - myvar
. Para se referir a uma string literal contendo as letras m-y-v-a-r, você digita "myvar"
.
O $
em awk
refere-se ao campo com um número específico. Portanto, $2
refere-se ao segundo campo da linha atual do arquivo. Ou se você definir myvar = "4"
, então $myvar
refere-se ao campo quarto do arquivo.
Para imprimir apenas todas as linhas de um arquivo que correspondem a um determinado padrão, use grep
- é para isso que ele foi projetado.