aiutare con grep [[: alpha:]] * -o
Domanda
file.txt contiene:
##w##
##wew##
utilizzando mac 10.6, shell bash, il comando:
cat file.txt | grep [[:alpha:]]* -o
emette nulla. Sto cercando di estrarre il testo all'interno dei segni di hash. Che cosa sto facendo di sbagliato?
Soluzione
(Si noti che è meglio pratica in questo caso per passare il nome di file come argomento grep invece di pipe l'output di gatto di grep:. grep PATTERN file
anziché cat file | grep PATTERN
)
Cosa guscio stai usando per eseguire questo comando? Ho il sospetto che il tuo problema è che la shell interpreta l'asterisco come carattere jolly e cercando di glob file.
Prova indicando il modello, ad esempio, grep '[[:alpha:]]*' -o file.txt
.
Ho notato che questo funziona bene con la versione di grep che è sulla mia macchina Linux, ma il grep sul mio Mac richiede il comando grep -E '[[:alpha:]]+' -o file.txt
.
Altri suggerimenti
sed 's/#//g' file.txt
/SCRIPTS [31]> cat file.txt
##w##
##wew##
/SCRIPTS [32]> sed 's/#//g' file.txt
w
wew
se avete bash> 3.1
while read -r line
do
case "$line" in
*"#"* )
if [[ $line =~ "^#+(.*)##+$" ]];then
echo ${BASH_REMATCH[1]}
fi
esac
done <"file"