SH - Recupérer txt situé entre parenthèse
Résolu
mp3yeur
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour à tous,
Après de longues recherches infructueuses, je recherche toujours une solution à mon problème :
Dans un script SH, je recherche à récuperer depuis un fichier CSS (en gros un fichier texte) la portion de texte, qui est différente à chaque fois :
Au moyen d'un grep j'ai récupéré uniquement les lignes qui contienent le mot "images"... Seulement, il n'y a pas une seule ligne qui est identique à l'autre, je souhaite conserver uniquement l'adresse ../images/bg.gif, sous forme de fichier texte :
../images/bg.gif
../images/toto.gif
../images/tata.jpg
etc.......
Une idée
Après de longues recherches infructueuses, je recherche toujours une solution à mon problème :
Dans un script SH, je recherche à récuperer depuis un fichier CSS (en gros un fichier texte) la portion de texte, qui est différente à chaque fois :
#navCatTabs {background:url(../images/bg2.gif); color:#5E2F3B; font-weight:bold; margin-bottom:2px;}
.....etc........
Au moyen d'un grep j'ai récupéré uniquement les lignes qui contienent le mot "images"... Seulement, il n'y a pas une seule ligne qui est identique à l'autre, je souhaite conserver uniquement l'adresse ../images/bg.gif, sous forme de fichier texte :
../images/bg.gif
../images/toto.gif
../images/tata.jpg
etc.......
Une idée
A voir également:
- SH - Recupérer txt situé entre parenthèse
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Fichier .sh - Forum Ubuntu
- Parenthèse carré ✓ - Forum MacOS
4 réponses
Salut,
[tmpfs]$ cat fich
#navCatTabs {background:url(../images/blu.gif); color:#5E2F3B; font-weight:bold; margin-bottom:2px;}
#navCatTabs {background:url(../images/bla.gif); color:#5E2F3B; font-weight:bold; margin-bottom:2px;}
#navCatTabs {background:url(../images/bg1.gif); color:#5E2F3B; font-weight:bold; margin-bottom:2px;}
#navCatTabs {background:url(../images/bg2.gif); color:#5E2F3B; font-weight:bold; margin-bottom:2px;}
#navCatTabs {background:url(../images/bg3.gif); color:#5E2F3B; font-weight:bold; margin-bottom:2px;}
[tmpfs]$ sed -n 's/.*(\(.*\)).*/\1/p' fich
../images/blu.gif
../images/bla.gif
../images/bg1.gif
../images/bg2.gif
../images/bg3.gif
[tmpfs]$;-))
Hello !
Je t'envoie le script complet, j'ai du louper un wagon, en fait j'obtiens en sortie ça :
Voici le script complet, :
Si quelqu'un a une idée. Je suis en galère sur le SED final. Il me reste pas grand chose pour le terminer... Merci à tous.
sed... La vérité est ailleurs ;-)
Je t'envoie le script complet, j'ai du louper un wagon, en fait j'obtiens en sortie ça :
sed: can't read .footer_bg: No such file or directory
.footer_bg
sed: can't read {background:url(../images/line_1.gif): No such file or directory
{background:url(../images/line_1.gif)
sed: can't read top: No such file or directory
top
sed: can't read repeat-x;: No such file or directory
repeat-x;
sed: can't read padding:13px: No such file or directory
padding:13px
sed: can't read 0: No such file or directory
Voici le script complet, :
#!/bin/sh
# Variables
# Site a capturer
page_html="http://osc3.template-help.com/zen_20196/index.php"
racine_site="http://osc3.template-help.com/zen_20196"
# Dossier de travail en local
fichier_capture="/media/sdb1/scripts/fichier_capture.txt"
dossier_capture="/media/sdb1/scripts/dossier_capture"
page_principale="/media/sdb1/scripts/dossier_capture/index.php"
liste_css="/media/sdb1/scripts/dossier_capture/liste_css.txt"
liste_css_light="/media/sdb1/scripts/dossier_capture/liste_css_light.txt"
# Execution
# Recupere la page HTML a traiter en local
wget $page_html -O$page_principale
# Recupere la liste des fichiers css depuis le code HTML de la page index.php
cat $page_principale|grep stylesheet>$liste_css
# Simplifie le fichier css télechargé
sed -i 's/media="print" //' $liste_css
sed -i 's/<link rel="stylesheet" type="text\/css\" href="//' $liste_css
sed -i 's/.css" \/>/.css/' $liste_css
# Copie le fichier css
cp $liste_css $liste_css_light
# On allege encore le fichier css light en virant /includes/templates
sed -i 's/includes\/templates\///' $liste_css_light
# Recupere et separe la structure des dossiers /includes/templates/theme/css/Nom de fichier
for ligne_css in `cat $liste_css`; do
includes_path=$(echo $ligne_css | cut -d'/' -f1) # Dossier includes
templates_path=$(echo $ligne_css | cut -d'/' -f2) # Dossier templates
theme_path=$(echo $ligne_css | cut -d'/' -f3) # Dossier theme
css_path=$(echo $ligne_css | cut -d'/' -f4) # Dossier css
nom_de_fichier_css=$(echo $ligne_css | cut -d'/' -f5) # Nom de fichier
# Creer les dossiers a recevoir en local
mkdir $dossier_capture/$includes_path
mkdir $dossier_capture/$includes_path/$templates_path
mkdir $dossier_capture/$includes_path/$templates_path/$theme_path
mkdir $dossier_capture/$includes_path/$templates_path/$theme_path/$css_path
mkdir $dossier_capture/$includes_path/$templates_path/$theme_path/images
# Recupere les fichiers css 1 par 1
wget $racine_site/$ligne_css -O$dossier_capture/$ligne_css
# Liste les repertoires images contenus dans le fichier css
liste_des_images_url=$(cat $dossier_capture/$ligne_css|grep images)
# Recupere les images depuis les fichiers css trouves
for images_trouvees in $liste_des_images_url; do
sed -n 's/.*(\(.*\)).*/\1/p' $images_trouvees
echo $images_trouvees # c'est ici que logiquement on doit voir ../images/bg.gif ../images/toto.jpg etc...
done
done
Si quelqu'un a une idée. Je suis en galère sur le SED final. Il me reste pas grand chose pour le terminer... Merci à tous.
sed... La vérité est ailleurs ;-)
# Recupere les images depuis les fichiers css trouves
for images_trouvees in $liste_des_images_url; do
sed -n 's/.*(\(.*\)).*/\1/p' <<<$images_trouvees >> les_images
cat les_images
done
donePar contre, merci à l'avenir d'enlever le nom de ta boîte dans ta signature. Voir Neutralité commerciale et culturelle dans la charte de CCM
Je teste, une chose est sûr, je n'aurai jamais trouvé seul ! Merci !