Este pode ser o seu comando. É um script que recebe um nome de arquivo na linha de comando e gera todas as linhas com exatamente sete caracteres:
#!/bin/sh
grep -c '^.......$' "$1"
Você precisa tornar o script executável acima (com algo como chmod +x script.sh
) e, em seguida, executá-lo com ./script.sh file
, em que file
é o nome do arquivo que você gostaria de examinar.
O comando
grep -c '^.......$'
produzirá o número de linhas no arquivo fornecido que contém exatamente sete caracteres (incluindo espaços).
Isso pode ser encurtado para
grep -cEx '.{7}'
O -E
é necessário porque a expressão é agora uma expressão regular estendida . O sinalizador -x
forçará a expressão a corresponder a uma linha completa.
Se você não quiser contar espaços e estiver interessado apenas em "caracteres de palavras" (alfanuméricos), use
grep -cExw '.{7}'
O sinal -w
to grep
forçará a correspondência a ser uma "palavra" (uma cadeia de caracteres alfanuméricos delimitada por caracteres não alfanuméricos).
Se você quiser contar quantas únicas linhas que preenchem esse critério (é assim que eu interpreto "linhas diferentes"), canalize o resultado de grep
sem o -c
sinalizar por uniq
e wc -l
. Isso contará o número de linhas exclusivas com exatamente sete caracteres de palavras.
grep -Exw '.{7}' | uniq | wc -l
No script, isso se torna
grep -Exw '.{7}' "$1" | uniq | wc -l