ayudar con grep [[: alpha:]] * -O
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?
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"