Je possède ce regex travail (testé sur l'entraîneur regex):egrep regex ne fonctionne pas sur regex qui fonctionne dans d'autres programmes
\n[\s]*[0-9]*[\s]*[0-9]*(\.)?[0-9]*(e\+)?[0-9]*
qui est censé ramasser les 2 premières colonnes de ce fichier
http://wwwhomes.uni-bielefeld.de/achim/highly.txt
je lis à travers les pages de manuel, et il dit que^correspondra au beggining de la ligne donc j'ai remplacé \ n avec^ mais egrep n'est pas d'accord avec moi quand je fais ceci:
egrep -e ^[\s]*[0-9]*[\s]*[0-9]*(\.)?[0-9]*(e\+)?[0-9]* "wwwhomes.uni-bielefeld.de achim highly.txt"
EDIT: il a quelque chose à voir avec (e\+)?
EDIT 2: D'accord, je simplifie l'expression rationnelle. oublier d'essayer d'obtenir des chiffres en notation scientifique ici est ce que je suis en utilisant:
egrep -e "^[[:space:]]*[0-9]*[[:space:]]*[0-9]*" "wwwhomes.uni-bielefeld.de achim highly.txt"
il renvoie les lignes d'en-tête:
no number divisors 2 3 5 71113171923293137414347535961677173
------------------------------------------------------------------------------
ce n'est pas juste ...
modifier finale :
J'avais besoin d'une combinaison de grep et sed pour obtenir les bonnes données. grep supprimé les lignes d'en-tête et le texte formaté sed
grep -E -o -e "^[[:space:]]+[0-9]+[[:space:]]+[0-9e\+\.]+[[:space:]]+[0-9e\+\.]+" "wwwhomes.uni-bielefeld.de achim highly.txt" >grepped.txt
sed -r "s/^\s*[0-9]+\s*([0-9.e+]+)\s*([0-9.e+]+)/\1,\2/" "grepped.txt" >seded.txt
De quelle façon est-ce "non d'accord"? – justintime
Vous devez mettre votre expression régulière entre guillemets. Les caractères '[]() *? \' Ont tous une signification spéciale pour le shell. –
@Adam: fait, pas bon – mna