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?

Foi útil?

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"
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top