Page 1 sur 1

[cat/grep] trouver texte dans un fichier

Publié : ven. 27 oct. 2017, 17:41
par Shaaake
Bonjour,

J'ai besoin d'aide, je fais un script pour automatiser les couleurs de fonds d'écran, etc, je me base sur mes fichiers de couleurs .Xresources, donc j'ai pris :

color=$(cat .Xresources | awk '/\*background:/ {print $2}')

Le problème c'est que des fois je me retrouve avec
*.background,
des fois
*background

Et il y a également des tabulations, enfin tout est différent, je pourrais avoir un peu d'aide pour essayer de faire le truc le plus universel possible ?

Merci

Re: [cat/grep] trouver texte dans un fichier

Publié : ven. 27 oct. 2017, 18:13
par avi3000
Le résultat de

Code : Tout sélectionner

awk '/\*background:/ {print}' ~/.Xresources
permettra d'y voir plus clair

Re: [cat/grep] trouver texte dans un fichier

Publié : ven. 27 oct. 2017, 18:15
par FoolEcho
Salut,

Tu as plus intérêt à parser la sortie de xrdb -query -all je pense...

Du coup avec awk ça doit le faire...

Code : Tout sélectionner

xrdb -query -all | awk '/\*background:/ {print $2}'
Et par conséquent tu peux filtrer davatange (xterm*background ?).

Re: [cat/grep] trouver texte dans un fichier

Publié : dim. 29 oct. 2017, 13:36
par Shaaake
Oh effectivement ça a l'air bien plus pratique, ça fonctionne aussi avec le include du xresources ?

Pour le xterm*background j'imagine que tu veux dire de le mettre à la place de background après le awk, mais je n'ai pas xterm dans mes fichiers xresources/couleurs

Re: [cat/grep] trouver texte dans un fichier

Publié : lun. 30 oct. 2017, 19:51
par FoolEcho
Shaaake a écrit : dim. 29 oct. 2017, 13:36Oh effectivement ça a l'air bien plus pratique, ça fonctionne aussi avec le include du xresources ?
Oui. x_resources

Re: [cat/grep] trouver texte dans un fichier

Publié : sam. 04 nov. 2017, 16:08
par Shaaake
Donc si je comprends bien, il charge en memoire les fichiers de configuration, même les fichiers compris dans include, et xrdb -query -all m'affiche ce qu'il a chargé

J'utilise xrdb -load, il vaut mieux -merge ?

Par contre vu que mes couleurs ne sont pas uniformisés dans les fichiers, j'ai des tabulations dans certains fichiers, d'autres non, il y a un moyen de modifier le awk ? Ou je dois uniformiser mes fichiers

Re: [cat/grep] trouver texte dans un fichier

Publié : sam. 04 nov. 2017, 16:37
par FoolEcho
Pour moi, tu n'as besoin de te fier qu'à la sortie du query.

Re: [cat/grep] trouver texte dans un fichier

Publié : sam. 04 nov. 2017, 18:33
par Shaaake
Oui mais le query prends comme dans le fichier de config, donc les espaces et tabulations sont pareilles que dans les fichiers donc avec awk sur certains fichiers j'ai un résultat vide

Re: [cat/grep] trouver texte dans un fichier

Publié : dim. 05 nov. 2017, 09:23
par FoolEcho
Compte tenu de la nature de ces fichiers, je pense qu'il est dangereux d'utiliser des espaces comme séparateur (on retrouve parfois des commandes avec argument). Mieux vaudrait aligner tes fichiers de manière à bien avoir les colonnes séparées par des tabulations. Ou ne pas passer par awk mais plus jouer avec du grep|sed et cut (mais ça devient vite illisible).

Re: [cat/grep] trouver texte dans un fichier

Publié : dim. 05 nov. 2017, 19:59
par Shaaake
Donc tu me conseille de mettre des tabulations uniquement, à la place des espaces ?