J’essaie d’utiliser grep
pour copier des lignes dans un fichier texte qui correspond à un certain modèle, mais je rencontre quelques problèmes … Je voudrais saisir les valeurs dans le conteneur “title =”.
Code:
get_tmax=`grep '[0-9][0-9]°C' K0G7_ec_tmp` echo "${get_tmax}" > K0G7_ec_tmp2
Contenu du fichier texte:
19
- Regex obtient une valeur entre parenthèse et virgule
- Rm et Egrep -v combo
- grep ne retourne pas le chemin lors de la recherche d’une seule occurrence
- Unix – Trouver des patterns dans un fichier, les copier dans un autre fichier
- fgrep ou grep -F, lequel est le meilleur pour le script portable?
26
Vous pouvez utiliser grep -P
avec match reset \K
:
grep -ioP 'title="\K[^"]+' K0G7_ec_tmp 19°C 26°C
Soyez prudent lors de l’parsing du fichier HTML à l’aide des utilitaires shell grep / awk / sed, etc. Utilisez plutôt un parsingur HTML dédié pour ce travail.
grep
est un raccourci pour g/re/p
ce qui n’est pas exactement ce que vous essayez de faire, alors je regarderais sed
pour cela:
$ sed 's/.*title="\([^"]*\).*/\1/' file 19°C 26°C
Cela fonctionnera avec n’importe quelle version sed sur n’importe quel système d’exploitation.