Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.
nombre réponses : 25

#0 Re : -1 »  splitter un fichier selon un pattern Regex » Hier à 18:22

pingouinux
Réponses : 3

Bonjour,
Voici une proposition en python.

cat decoupage.py

#! /usr/bin/python

import sys, re

rec=re.compile('(.*?\n\n){2}',re.S)

with open(sys.argv[1],'r') as f :
   fic=f.read()

   n=0
   while True :
      k=rec.search(fic)
      if(k) :
         n+=1
         with open('fichier%d.txt'%n,'w') as g :
            g.write(fic[:k.start(0)])
            g.write(k.group(0))
            fic=fic[k.end(0):]
      else :
         if fic :
            n+=1
            with open('fichier%d.txt'%n,'w') as g :
               g.write(fic)
         break

À appeler ainsi

./decoupage.py fichier_original

#1 Re : -1 »  splitter un fichier selon un pattern Regex » Hier à 21:51

pingouinux
Réponses : 3

J'ai un peu simplifié, et ajouté des commentaires.

#! /usr/bin/python
# -*- coding: utf-8 -*-

import sys, re

# Compilation d'une expression régulière :
# Recherche de 2 occurrences consécutives de : la plus petite chaîne de caractères
# (pouvant contenir des '\n'), et suivie d'au moins 2 '\n' consécutifs. 
rec=re.compile('(.*?\n\n+){2}',re.S)

# Lecture du fichier donné en argument du script
with open(sys.argv[1],'r') as f :
   fic=f.read()

   n=0
   while True :         # Boucle infinie
      k=rec.search(fic)
      if(k) :           # L'expression régulière est-elle trouvée ?
         n+=1           # Numéro du fichier créé
         with open('fichier%d.txt'%n,'w') as g :
            g.write(k.group(0)) # Écriture de la chaîne trouvée
            fic=fic[k.end(0):]  # fic = fin du fichier
      else :
         if fic :       # Reste-t-il quelque chose à écrire ?
            n+=1        # Numéro du fichier créé
            with open('fichier%d.txt'%n,'w') as g : g.write(fic)
         break          # Sortie de la boucle

#2 Re : -1 »  [Résolu] Bash: rendre un test insensible à la casse » Hier à 12:26

pingouinux
Réponses : 6

Bonjour,
Je n'ai pas trouvé plus simple.

#!/bin/bash

shopt -s dotglob nocasematch
read -p 'Entrer un nom de fichier : ' nom

oui_non="n'existe pas"

for i in *; do
   if [[ "$nom" == "$i" ]]; then
      oui_non="existe"
      break
   fi
done

echo -e "Le fichier $nom $oui_non"

#3 Re : -1 »  [Résolu] Bash: rendre un test insensible à la casse » Hier à 13:25

pingouinux
Réponses : 6

Le grep est une excellente idée, mais il faut faire ainsi :

#!/bin/bash

read -p 'Entrer un nom de fichier : ' nom

sortie=$(ls | grep -i "^$nom$")

if [ -e "$sortie" ]; then
	echo -e "Le fichier $nom existe"
else
	echo -e "Le fichier $nom n'existe pas"
fi

Édité : Beaucoup plus simple

#!/bin/bash

read -p 'Entrer un nom de fichier : ' nom

ls | grep -i "^$nom$" && echo -e "Le fichier $nom existe" || echo -e "Le fichier $nom n'existe pas"

#4 Re : -1 »  [RESOLU] Comment revenir à mon menu principal ? » Hier à 08:44

pingouinux
Réponses : 11

Bonjour,
À tout hasard, tu peux essayer de mettre en tête de ton script

nautilus -q

#5 Re : -1 »  [RESOLU] Comment revenir à mon menu principal ? » Hier à 08:55

pingouinux
Réponses : 11

C'est gksudo qu'il faut utiliser pour nautilus, comme pour toutes les commandes graphiques.

#6 Re : -1 »  Utilise 1 coeur au lieu des 2 - Le noyaux linux est totalement perdu ! » Le 18/09/2014, à 19:28

pingouinux
Réponses : 23

Bonjour,
J'ai déjà eu un problème similaire. Que donne cette commande ?

grep GRUB_CMDLINE_LINUX /etc/default/grub

#7 Re : -1 »  Utilise 1 coeur au lieu des 2 - Le noyaux linux est totalement perdu ! » Le 18/09/2014, à 20:06

pingouinux
Réponses : 23

J'ai la même chose que ce que tu montres en #4, donc le problème est autre (il m'avait fallu supprimer noapic,nolapic dans GRUB_CMDLINE_LINUX="noapic,nolapic").

#8 Re : -1 »  Renommer une série de fichier en supprimant le préfixe » Le 18/09/2014, à 17:58

pingouinux
Réponses : 3

Bonjour,

for f in *; do echo mv "$f" "${f#*-}"; done

Enlever le echo si c'est bon.

Ajouté : La commande sans echo ne doit être exécutée qu'une seule fois, sinon elle tronquera de nouveau le nom des fichiers

#9 Re : -1 »  Renommer une série de fichier en supprimant le préfixe » Hier à 07:00

pingouinux
Réponses : 3

Si, on peut utiliser rename, mais je connais moins bien.

Pour juste tester :

rename -n 's/^.*?-//' *

Pour renommer les fichiers :

rename 's/^.*?-//' *

#10 Re : -1 »  Raccourci dossier par défaut (Images). » Le 17/09/2014, à 04:50

pingouinux
Réponses : 5

Bonjour,
Quel est le retour de cette commande ?

find ~ -name Images -ls

#11 Re : -1 »  Raccourci dossier par défaut (Images). » Le 18/09/2014, à 19:06

pingouinux
Réponses : 5

Tu peux à tout hasard essayer de chercher ailleurs que dans l'arborescence de ton home.

sudo find / -iname Images -ls

#12 Re : -1 »  Raccourci dossier par défaut (Images). » Le 18/09/2014, à 19:09

pingouinux
Réponses : 5

Je viens de voir ton message #4.
Que donne cette commande

ls -l /home/tamerlan/Images /home/tamerlan/Bureau/Images

#13 Re : -1 »  [résolu] tree comment exclure des fichiers? » Le 17/09/2014, à 19:34

pingouinux
Réponses : 8

Bonjour,
Tu n'as pas dû chercher beaucoup (voir man tree).

tree -I \*.flac

#14 Re : -1 »  [résolu] tree comment exclure des fichiers? » Le 17/09/2014, à 20:13

pingouinux
Réponses : 8

C'est curieux, voici un extrait de man tree chez moi :

-I pattern
              Do not list those files that match the wild-card pattern.

\ est utile si tu as des fichiers de la forme *.flac dans le répertoire d'où tu lances la commande.

#15 Re : -1 »  [résolu] tree comment exclure des fichiers? » Le 18/09/2014, à 06:57

pingouinux
Réponses : 8

@BIMI : Pour info, l'extrait de man que tu montres en #3 semble provenir de man grep (et non de man tree)

#16 Re : -1 »  Comment fusionner deux pages pdf en une seule ? » Le 18/09/2014, à 07:08

pingouinux
Réponses : 19

Bonjour,

Clhiver #16 a écrit :

Existe-t-il une commande qui permettrait de faire la  même chose pour un grand nombre de fichier pdf ?

Oui, il est possible de faire une boucle. Il faudrait que tu précises le nom des paires de fichiers de départ et celui des fichiers générés.

#17 Re : -1 »  [RÉSOLU] Thunderbird et sa ligne de commande » Le 15/09/2014, à 11:05

pingouinux
Réponses : 19

Ceci a l'air de marcher :

r=;for v in "$@"; do r="$r$v,"; done

thunderbird -compose "attachment='${r%?}'"

Ajouté :
Et ceci aussi

r=;for v in "$@"; do r="$r$v,"; done
r='-compose "attachment='\'${r%?}\''"'

eval thunderbird "$r"

#18 Re : -1 »  [RÉSOLU] Thunderbird et sa ligne de commande » Le 18/09/2014, à 09:26

pingouinux
Réponses : 19

Bonjour Postmortem,
Ta solution est la plus simple, je viens de la tester. Il faut simplement donner le chemin complet des photos lors de l'appel.

#19 Re : -1 »  [RÉSOLU] Remplissage automatique depuis presse-papier » Le 17/09/2014, à 08:33

pingouinux
Réponses : 5

Bonjour,
Peut-être ceci ?

zenity --entry --entry-text="$(xclip -o)"

#20 Re : -1 »  Choisir répertoire par défaut au lancement d'un terminal » Le 17/09/2014, à 11:01

pingouinux
Réponses : 5

Bonjour,
Avec gnome, par exemple

gnome-terminal --working-directory=/…/le_dossier_que_je_veux

#21 Re : -1 »  Interprête s'il vous plaît ! » Le 16/09/2014, à 14:17

pingouinux
Réponses : 8

Bonjour,
Pour toutes les commandes graphiques, c'est gksudo et non sudo qu'il faut utiliser.

#22 Re : -1 »  affichage effacement sur console » Le 15/09/2014, à 12:38

pingouinux
Réponses : 8

Bonjour,
Je m'étais fait un script pour voir l'évolution de la copie avec dd, et en voici une adaptation pour ton cas.

#! /bin/bash

# BS = Taille d'un bloc
BS=$((1024*1024))

# Taille de /dev/sdb
size=$(sudo fdisk -l /dev/sdb | awk '/^Disk .* bytes/{print $5}')

n=0
while true
do
   echo dd if=/dev/zero of=/dev/sdb bs=$BS count=1 skip=$n seek=$n 2>/dev/null
   if (((++n)*BS<size)); then
      printf "\r%8d    blocs de %d octets (%3.0f %%)" $n $BS $((100*n*BS/size))
   else
      LC_ALL=C \
      printf "\r   %8.2f blocs de %d octets (%3.0f %%)" $(bc -l <<<"$size/$BS") $BS 100
      break
   fi
done
echo

dd est appelé une fois par bloc. Tel qu'il est, le script n'écrit rien sur la partition. Si le décompte se fait correctement, tu pourras enlever le echo devant dd.

#23 Re : -1 »  javascript à la con qui bourre le disque » Le 15/09/2014, à 11:12

pingouinux
Réponses : 8
lucmars a écrit :

loadkeys fr serait une commande à passer en mode console et donc avec un clavier qwerty ?

Oui, peut-être en ajoutant sudo. Comme tu pars d'un clavier qwerty, il faut taper

loqdkeys fr

#24 Re : -1 »  javascript à la con qui bourre le disque » Le 15/09/2014, à 16:09

pingouinux
Réponses : 8

Le u ne change pas.