0
votes

Grep pour diriger les espaces blancs en face du texte requis

J'ai besoin de grep pour le nom de fichier existant entre un espace blanc et l'extension de fichier. Exemple: xxx

mais je veux résultat comme: xxx


0 commentaires

3 Réponses :


0
votes
$ echo -e "Akqmskdnlcn shddhjshd.py" | grep -o "[^[:space:]]*\.py"
shddhjshd.py
^ is to negate the catching group. Work with [:space:] means characters not space.
-o is only to only print out matched contents.

2 commentaires

Puis-je l'utiliser dans cette expression ?? '(? <= [[: espace:]]]) (\ n |.) *? (? = \ \. py)' '


@Megumi vous pouvez essayer. Mais je ne peux pas comprendre pourquoi vous mettez \ n à l'intérieur. Vous voulez aussi .py partie ou pas? Si vous le souhaitez, ne les mettez pas dans (? =) . Aussi la bonne façon de correspondre à .py .py est \ \. Py - . a une signification particulière afin de échappatoire il.



0
votes

Si vous pouvez utiliser un autre outil après grep, couper rend cette très simple: xxx

Si vous devez utiliser uniquement grep , vous allumez les choses autour de vous et correspondez à tout «non-espace» non-espace (\ S) qui précède «.py», puis utilisez le drapeau -o pour pring le match et vous l'avez: < Pré> xxx


0 commentaires

0
votes

avec AWK

echo "Akqmskdnlcn shddhjshd" | awk -F' ' ' $2 ~ /.*.py/{print $2}'


0 commentaires