Je travaille sur script shell et nouveau à celui-ci. Je veux extraire la chaîne entre les caractères double entrée: p> sortie p> $$ code>, par exemple:
extractabc
5 Réponses :
Vous pouvez faire supposer que le fichier contenait Vous pouvez utiliser SED comme pour obtenir la même information. p> entrée: $$ extrayant $$ sortie: extrayant code>.
awk code> scindre vos données en morceaux en utilisant
$ code> comme délimiteur. Le premier élément sera
entrée: code>, Suivant sera vide, suivant sera
extrayant code>. P>
sed code> recherche des informations entre $$ s et sorties qui. L'objectif est de taper quelque chose comme celui-ci
. * $$ (. *) $$. * Code>. C'est gourmand mais reste juste avec moi. P>
. * code> - c'est-à-dire zéro de caractère ou plus avant $$ li>
(. *) code>. String trouvée entre $$ S reçoit un espace réservé
\ 1 code> li>
Merci beaucoup! Cela fonctionne bien sur la ligne de commande, mais lorsque j'utilise à l'intérieur du script, cela ne fonctionne pas.
Vous auriez dû mentionner que dans votre question que vous l'utilisez dans un script. Modifiez votre question et mettez-la à la mise à jour avec le script que vous avez, l'erreur que vous voyez, etc.
Vous ne fonctionne pas, ne donne aucune sortie. PS Line est $$ Extractabc $$$ Code> Non
Entrée: $$ Extractabc $$ Sortie: Extractabc Code>
@Jotne Pourquoi ça ne marcherait-il pas? Pour les deux intrants, en fait.
@Jotne je viens d'essayer de mettre $$ Extractabc $$$ Code> dans fichier.txt et utilisé
awk -f "$" '{print $ 3}' File.txt code>. Cela m'a donné les informations correctes
extrachabc code>. Si vous avez un exemple de fichier, allez-y et fournissez un lien. Inclure également la sortie de
awk --version code>.
en utilisant grep code> pcre (si disponible) et sur des environs:
echo '$$extractabc$$' | awk '{gsub(/\$\$/,"")}1' extractabc
C'est une bonne idée d'ajouter une explication afin que les utilisateurs puissent utiliser plus facilement votre réponse. La réponse du code uniquement ne servira parfois pas le but des utilisateurs et de sa difficulté à comprendre -Avoir
Voici une autre variante:
echo "$$extractabc$$" | awk -F"$$" 'NF==3 {print $2}'
Que diriez-vous de supprimer tous les dollars de l'entrée?
$ echo '$$extractabc$$' | tr -d '$' extractabc
Votre question a reçu de bonnes réponses. Veuillez mettre une fermeture à votre question en marquant une réponse de votre choix comme accepté.