ajuda com grep [[: alpha:]] * -o
Pergunta
file.txt contém:
##w##
##wew##
Usando o Mac 10.6, shell bash, o comando:
cat file.txt | grep [[:alpha:]]* -o
nada saídas. Eu estou tentando extrair o texto dentro dos sinais de hash. O que estou fazendo de errado?
Solução
(Note que é melhor prática neste caso para passar o nome do arquivo como um argumento para grep em vez de canalizar a saída de gato para grep:. grep PATTERN file
vez de cat file | grep PATTERN
)
O que desembolsar você está usando para executar este comando? Eu suspeito que o problema é que o shell é interpretar o asterisco como um curinga e tentando glob arquivos.
Tente citando o seu padrão, por exemplo, grep '[[:alpha:]]*' -o file.txt
.
Tenho notado que esta multa trabalha com a versão do grep que está em minha máquina Linux, mas o grep no meu Mac requer a grep -E '[[:alpha:]]+' -o file.txt
comando.
Outras dicas
sed 's/#//g' file.txt
/SCRIPTS [31]> cat file.txt
##w##
##wew##
/SCRIPTS [32]> sed 's/#//g' file.txt
w
wew
Se você tem o bash> 3.1
while read -r line
do
case "$line" in
*"#"* )
if [[ $line =~ "^#+(.*)##+$" ]];then
echo ${BASH_REMATCH[1]}
fi
esac
done <"file"