Pregunta

archivo.txt contiene:

##w##

##wew##

usando mac 10.6, cáscara del golpe, el comando:

cat file.txt | grep [[:alpha:]]* -o

salidas nada. Estoy tratando de extraer el texto dentro de los signos de número. ¿Qué estoy haciendo mal?

¿Fue útil?

Solución

(Tenga en cuenta que es mejor práctica en este caso para pasar el nombre de archivo como un argumento a grep en vez de una tubería de la salida de cat a grep:. grep PATTERN file en lugar de cat file | grep PATTERN)

¿Qué cáscara está usando para ejecutar este comando? Sospecho que el problema es que la cáscara está interpretando el asterisco como comodín y tratando a glob archivos.

Trate citando a su patrón, por ejemplo, grep '[[:alpha:]]*' -o file.txt.

Me he dado cuenta de que esto funciona bien con la versión de grep que está en mi máquina Linux, pero el grep en mi Mac requiere la grep -E '[[:alpha:]]+' -o file.txt comandos.

Otros consejos

sed 's/#//g' file.txt

/SCRIPTS [31]> cat file.txt
##w##
##wew##

/SCRIPTS [32]>  sed 's/#//g' file.txt
w
wew

Si usted tiene fiesta> 3.1

while read -r line
do
  case "$line" in
   *"#"* )
        if [[ $line =~ "^#+(.*)##+$" ]];then
            echo ${BASH_REMATCH[1]}
        fi
  esac    
done <"file"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top