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.

#1501 Le 14/12/2011, à 22:25

olitask

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

titan77 a écrit :

salut,
si tu veut envoyer seulement une image sélectionnée,ce script doit convenir.

#!/bin/sh

if [ -f "$1" ]; then
    notify-send -i "gtk-go-up" "Picasa upload" "Votre image va être envoyée"
    google picasa post --title "Public" "$PWD/$1"

    if [ "$?" -eq "0" ]; then
        notify-send -i "gtk-ok" "Picasa upload" "Votre image est envoyée"
    else
        notify-send -i "process-stop" "Picasa upload" "Votre image n'est pas envoyée"
    fi
else
    notify-send -i "process-stop" "Picasa upload" "Veuillez sélectionner un fichier"
fi

MERCI beaucoup. Désolé pour le contretemps, j'avais zappé ton message

Hors ligne

#1502 Le 17/12/2011, à 13:51

krupt

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,
je suis en train d essayer de faire un script "crontabé" qui vient nettoyer un dossier content des .avi ou mkv ou autres.
Selon 3 regles.
Si le avi|mkv est < 600M, on l envoie dans le dossier X
Si > 600M, on envoie dans le dossier Y
Si > 2G , dossier Z
Puis,
si dans les dossiers on retrouve un .nfo ET qu il est seul dans le dossier on le supprime.
Puis on supprime tous les dossiers vides .

Voici ce que ca donne coté code.

#!/bin/bash
find '/home/done/' -type f -iname '*.avi' -o -iname '*.mkv' -size -600M | xargs -I '{}' mv {} '/media/X'
find '/home/done/' -type f -iname '*.avi' -o -iname '*.mkv' -size +600M | xargs -I '{}' mv {} '/media/Y'
find '/home/done/' -type f -iname '*.avi' -o -iname '*.mkv' -size +3G | xargs mv -i -t '/media/Z'
for i in `find '/home/done' -iname '*.nfo'` ; do rep=`dirname $i` ; x=`find $rep -type f | wc -l` ; [ $x -ge 2 ] || rm $i ; done
rmdir /home/done/* > /dev/null 2>&1

Mon probleme, si j ai des dossiers exotiques, cela ne marche pas, type :
"Mike post .vostf.nfo/Mike post .vostf.nfo" -> la on a un dossier avec des points et des espaces, du coup il n est pas détecté...

si vous avez des idées pour améliorer un peu ca...

Dernière modification par krupt (Le 17/12/2011, à 13:58)

Hors ligne

#1503 Le 17/12/2011, à 14:20

Postmortem

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut,
Bon, j'avoue que j'ai pas tout testé donc fais des essais avant de balancer ça :

#!/bin/bash
find '/home/done/' -type f \( -iname '*.avi' -o -iname '*.mkv' \) -size -600M -exec mv '{}' '/media/X' \;
find '/home/done/' -type f \( -iname '*.avi' -o -iname '*.mkv' \) -size +600M -exec mv '{}' '/media/Y' \;
find '/home/done/' -type f \( -iname '*.avi' -o -iname '*.mkv' \) -size +3G -exec mv -i '{}' '/media/Z' \;
shopt -s dotglob
while read -rd ''
do
rep=$(dirname "$REPLY")
my_tab=( "$rep"/* )
[[ ${#my_tab[@]} -eq 1 ]] && rm "$REPLY"
done < <(find '/home/done' -iname '*.nfo' -print0)
rmdir /home/done/* > /dev/null 2>&1

Dernière modification par Postmortem (Le 17/12/2011, à 14:22)


Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#1504 Le 17/12/2011, à 14:42

krupt

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

ha ouais quand meme, c est légerement plus complexe, merci bcp je vais eplucher ca pour comprendre et tester !
Merci bien

bon le shopt n est pas dégéré chez moi, c est quoi une commande sh ? peux tu m en dire un peu plus . peut on la contourner?
par contre shopt tout court passe en shell smile

Dernière modification par krupt (Le 17/12/2011, à 14:48)

Hors ligne

#1505 Le 17/12/2011, à 15:58

Postmortem

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Le shopt c'est du bash.
shopt -s dotglob permet au caractère * (étoile) de prendre en compte les fichiers commençant par un . (point)
Tu as quelle version de bash ?

EDIT :
Si tu n'as pas de fichiers commençant par . (point), on peut se passer du shopt -s dotglob
Il est utile seulement si tu as des fichiers commençant par . dans $rep lorsque l'on fait : my_tab=( "$rep"/* )

Dernière modification par Postmortem (Le 17/12/2011, à 16:13)


Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#1506 Le 18/12/2011, à 21:49

pseudomino

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

[Unity] Ajouter un indicator-applications ouvrant des post-it placés dans un dossier

Voilà, un code en Python fait à partir d'indicator-places.
C'est pour mes propres besoins, donc je sais pas si ça servira à quelqu'un... Personnellement j'utilise de simples fichiers txt comme Post-it, parce que j'en ai besoin aussi bien sur Win que sous Linux (et que j'aime les trucs simples quand c'est possible!)

Il suffit de modifier '/chemin/vers/dossier/Post-it' au besoin, et de le lancer.
Et à ajouter dans les Applications au démarrage si adopté.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Un app-indicator très simple qui ouvre des post-it placés dans un dossier
# créé par Pseudomino à partir de indicator-places le 18/12/2011
#

import os
import gtk
import gio
import signal
import subprocess
import appindicator
import urllib

APP_NAME = 'indicator-post-it'
APP_VERSION = '0.1'

class IndicatorPostit:

    def __init__(self):
        self.ind = appindicator.Indicator("post-it", "tomboy", appindicator.CATEGORY_APPLICATION_STATUS)
        self.ind.set_status(appindicator.STATUS_ACTIVE)        

        self.update_menu()

    def create_menu_item(self, label, icon_name):
        image = gtk.Image()
        image.set_from_icon_name(icon_name, 24)

        item = gtk.ImageMenuItem()
        item.set_label(label)
        item.set_image(image)
        item.set_always_show_image(True)
        return item
    
   
    # Méthode pour créer un menu
    def update_menu(self, widget = None, data = None):
      
        # Créer le menu
        menu = gtk.Menu()
        self.ind.set_menu(menu)

        # Lister les post-it
    listing = os.listdir('/chemin/vers/dossier/Post-it/');
    for path in listing:
            item = self.create_menu_item(path, "tomboy")
            item.connect("activate", self.on_postit_click, path)
        menu.append(item)

        # Afficher le menu
        menu.show_all()


    # Ouvrir un post-it
    def on_postit_click(self, widget, path):
    subprocess.Popen('gedit ~/Post-it/' + path, shell = True)
      

if __name__ == "__main__":
    # Catch CTRL-C
    signal.signal(signal.SIGINT, lambda signal, frame: gtk.main_quit())

    # Lancer l'indicator
    i = IndicatorPostit()           
    
    # Boucle gtk principale
    gtk.main()

Dernière modification par pseudomino (Le 18/12/2011, à 21:50)


Changer le pansement ou penser le changement?

Hors ligne

#1507 Le 21/12/2011, à 19:31

n3o51

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour je voudrais savoir si quelqu'un as fait un script nautilus qui nous demanderai un nom de dossier et qui créer /nondedossier avec dedans /css/style.css index.php et qui poserait certaines question comme le titre du document etc ? afin de ne pas me lancer dans un script si c'est deja fait

Merci a vous par avance


Welcome to the real world
________________________________

Hors ligne

#1508 Le 22/12/2011, à 17:47

nordinatueur

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Je ne crois pas que ça ait déjà été fait !
Tu peux donner plus de détails sur l'architecture du dossier... Ce serait intéressant d'avoir plusieurs avis sur les améliorations...

Dernière modification par nordinatueur (Le 22/12/2011, à 17:57)


nordinatueur@jabber.fr Linux User #508094
Pour une meilleure coopération, utilisez des liens relatifs sur le forum !

Hors ligne

#1509 Le 23/12/2011, à 16:40

n3o51

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

exemple avec un dossier

html>css>style.css
html>index.php
html>sass>style.scss
html>js>style.js
html>js>jquery.js

un template de base


Welcome to the real world
________________________________

Hors ligne

#1510 Le 23/12/2011, à 20:26

Bousky

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Voici une partie d'un script bash que j'utilise pour développer en C. Ce morceau crée un projet de base en étant déjà dans le bon dossier :

# arborescence
mkdir tmp
mkdir src

# main.c
echo "\
#include <stdlib.h>$include

int main(int argc, char *argv[])
{
    
    return EXIT_SUCCESS;
}" > src/main.c

# Makefile
echo "\
EXEC = $exec

CC      = gcc
CFLAGS  =$cflags -Wall
LDFLAGS =$ldflags

all: \$(EXEC)

\$(EXEC): tmp/main.o
    \$(CC) \$(LDFLAGS) -o \$(EXEC) tmp/main.o

tmp/main.o: src/main.c
    \$(CC) \$(CFLAGS) -o tmp/main.o -c src/main.c


clean:
    rm -rf tmp/*

clear: clean
    rm -f \$(EXEC)
" > Makefile

Les variables sont, dans mon cas, initialisées à partir des options sur la ligne de commande, mais il est possible d'utiliser zenity pour poser la question.

Sans rapport : je viens d'ajouter à mon tableau de bord (gnome2) un moniteur système montrant le trafic réseau. Je n'utilise généralement qu'une interface à la fois, mais pas toujours la même, j'ai donc créé un lanceur qui appelle un script pour changer l'interface dont le trafic est affiché :

#!/bin/bash

interface=$(zenity --list \
    --title="Moniteur réseau" \
    --window-icon="/usr/share/icons/hicolor/scalable/apps/notification-network-ethernet-connected.svg" \
    --text="Sélection de l'interface" \
    --column="Interfaces" \
    $(ifconfig | awk '/^[^ ]/{if($1!="lo")print $1}'))

[ "$interface" ] || exit

gconftool-2 --type=string --set "/apps/panel/applets/$1/prefs/monitors/$2/interface"    $(tr -d [:digit:] <<< "$interface")
gconftool-2 --type=int    --set "/apps/panel/applets/$1/prefs/monitors/$2/interface_no" $(tr -d [:alpha:] <<< "$interface")

killall gnome-panel

Je ne suis pas très content du « killall gnome-panel », mais je n'ai pas trouvé mieux pour que la modification soit prise en compte. Il prend en argument le nom de l'applet (« applet_16 » dans mon cas) et le numéro de l'affichage (un applet peut afficher plusieurs informations).

Dernière modification par Bousky (Le 23/12/2011, à 20:28)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#1511 Le 05/01/2012, à 08:33

creamy

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour smile

Avec cette commande on peut rapidement afficher / masquer les icônes du bureau.

gsettings set org.gnome.desktop.background show-desktop-icons true

true pour afficher les icônes du bureau. false pour masquer.

Est-ce que quelqu'un aurait la gentillesse de faire un petit script qui switch entre true / false, en fonction de la valeur existante ?
J'ai fouillé un peu mais n'ai pas trouvé.

gsettings get org.gnome.desktop.background show-desktop-icons

Permet de savoir si la valeur est à true ou false.

J'y connais vraiment rien du tout smile
Mais quelque-chose comme ça devrait y parvenir ?

#!/bin/bash
bureau = gsettings get org.gnome.desktop.background show-desktop-icons
if bureau is true:
  gsettings set org.gnome.desktop.background show-desktop-icons false
else:
  gsettings set org.gnome.desktop.background show-desktop-icons true

Le secret de l'action, c'est de commencer : http://www.le-message.org

Hors ligne

#1512 Le 05/01/2012, à 10:32

Postmortem

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut creamy,
C'est pour quelle version d'ubuntu ? Parce que chez moi, la valeur est à false et les icônes sont pourtant présentes sur mon bureau. Je suis sous Natty (11.04).
Pour le script :

#!/bin/bash
if $(gsettings get org.gnome.desktop.background show-desktop-icons)
then
   gsettings set org.gnome.desktop.background show-desktop-icons false
else
   gsettings set org.gnome.desktop.background show-desktop-icons true
fi

Trusty Tahr (64 bits), Athlon64 3800+, ATI Radeon HD4870

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#1513 Le 05/01/2012, à 10:39

creamy

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut, et merci Postmortem ça marche impec ! :-)

C'est pour Oneiric. Avant on allait dans Gconf. apps → nautilus → preferences il me semble.
Ceci dit j'ai pas mal bidouillé comme un sauvageon l'os, et je suis pas certain que ma version soit très conforme à ce qu'on est supposé y trouver.


Le secret de l'action, c'est de commencer : http://www.le-message.org

Hors ligne

#1514 Le 10/01/2012, à 17:53

Miloose

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,
Je recherche à regrouper des fichiers csv ensemble. Au début, j'avais un mélange de csv et xls, mais j'ai déjà pu les convertir automatiquement avec un petit find et unoconv.
Le problème est que mes fichiers ne sont pas dans le même dossier (sinon, je pourrais les recopier tous au même endroit, et hop, le tour est joué). Tous les fichiers s'appellent MinAna.csv, et sont dans des arborescences du type

./2010_08_13_0915/15401410/MinAna.csv
./2010_08_13_0915/15401419/MinAna.csv
./2010_08_13_0915/15401415/MinAna.csv
./2010_08_13_0915/15401407/MinAna.csv
./2010_08_13_0915/15401408/MinAna.csv
./2010_08_13_0915/15401414/MinAna.csv
./2010_08_13_0915/15401418/MinAna.csv
./2010_08_13_0915/15401416/MinAna.csv
./2010_08_13_0915/15401413/MinAna.csv
./2010_12_10_0944/15401409/MinAna.csv
./2010_12_10_0944/15401411/MinAna.csv
./2010_12_10_0944/15401412/MinAna.csv
./2010_12_10_0944/15401417/MinAna.csv
./2010_12_10_0944/15401410/MinAna.csv
./2010_12_10_0944/15401419/MinAna.csv
./2010_12_10_0944/15401415/MinAna.csv
./2010_12_10_0944/15401407/MinAna.csv
./2010_12_10_0944/15401408/MinAna.csv
./2010_12_10_0944/15401414/MinAna.csv
./2010_12_10_0944/15401418/MinAna.csv
./2010_12_10_0944/15401416/MinAna.csv
./2010_12_10_0944/15401413/MinAna.csv

Il y a donc une date, puis un numéro de série, puis le MinAna.csv en question. Je dois regrouper le tout par numéro de série (donc tous les 15401408 ensemble, les 15401409 ensemble...).

Si je fais un "find . -name '*.csv' |grep 15401408", j'ai un fichier avec tous les .csv pour le 15401408, mais comment les regrouper ? Ca doit être tout con, mais je butte (hum, le shell et moi ça fait 2....)
voilà le contenu de la commande find

$ find . -name '*.csv' |grep 15401408
./2009_10_16_0910/15401408/MinAna.csv
./2009_06_05_0900/15401408/MinAna.csv
./2008_09_19_0941/15401408/MinAna.csv
./2010_05_28_0725/15401408/MinAna.csv
./2010_06_03_1945/15401408/MinAna.csv
./2009_08_06_1039/15401408/MinAna.csv
./2011_02_04_0345/15401408/MinAna.csv
./2009_10_09_0910/15401408/MinAna.csv
./2010_02_26_1537/15401408/MinAna.csv
./2008_11_21_0916/15401408/MinAna.csv
./2010_02_26_0900/15401408/MinAna.csv
./2010_08_06_0915/15401408/MinAna.csv
./2009_01_15_0915/15401408/MinAna.csv
./2009_05_15_0900/15401408/MinAna.csv
./2009_08_07_0910/15401408/MinAna.csv
./2009_09_11_0910/15401408/MinAna.csv
./2011_05_27_0345/15401408/MinAna.csv
./2010_03_12_0900/15401408/MinAna.csv
./2008_10_24_0918/15401408/MinAna.csv
./2011_07_01_0345/15401408/MinAna.csv
./2010_05_28_0915/15401408/MinAna.csv
./2010_04_09_1105/15401408/MinAna.csv
./2010_10_01_0915/15401408/MinAna.csv
./2009_08_21_0955/15401408/MinAna.csv
./2009_10_02_0910/15401408/MinAna.csv
./2011_03_18_0345/15401408/MinAna.csv
./2008_12_19_1036/15401408/MinAna.csv
./2011_04_15_0410/15401408/MinAna.csv
./2010_03_19_0900/15401408/MinAna.csv
./2009_07_17_0910/15401408/MinAna.csv
./2010_02_19_0900/15401408/MinAna.csv
./2010_01_29_0900/15401408/MinAna.csv
./2009_09_04_0910/15401408/MinAna.csv
./2008_10_17_0905/15401408/MinAna.csv
./2010_09_10_0915/15401408/MinAna.csv
./2011_05_13_1412/15401408/MinAna.csv
./2010_06_25_0915/15401408/MinAna.csv
./2008_12_19_0935/15401408/MinAna.csv
./2009_02_27_1057/15401408/MinAna.csv
./2008_07_10_1128/15401408/MinAna.csv
./2009_03_13_0944/15401408/MinAna.csv
./2009_11_20_0910/15401408/MinAna.csv
./2011_01_14_1726/15401408/MinAna.csv
./2010_08_27_0915/15401408/MinAna.csv
./2009_08_28_0910/15401408/MinAna.csv
./2011_01_07_0345/15401408/MinAna.csv
./2009_11_27_0900/15401408/MinAna.csv
./2009_04_03_0900/15401408/MinAna.csv
./2010_02_12_0900/15401408/MinAna.csv
./2010_10_15_0915/15401408/MinAna.csv
./2011_05_20_0345/15401408/MinAna.csv
./2008_11_07_0916/15401408/MinAna.csv
./2010_10_08_1127/15401408/MinAna.csv
./2010_11_05_0915/15401408/MinAna.csv
./2010_07_02_0915/15401408/MinAna.csv
./2011_04_29_0345/15401408/MinAna.csv
./2008_09_26_1000/15401408/MinAna.csv
./2010_06_04_0915/15401408/MinAna.csv
./2010_01_08_0900/15401408/MinAna.csv
./2010_04_16_0900/15401408/MinAna.csv
./2011_06_03_0345/15401408/MinAna.csv
./2010_04_23_0934/15401408/MinAna.csv
./2009_03_20_0919/15401408/MinAna.csv
./2010_05_07_0915/15401408/MinAna.csv
./2010_09_24_0915/15401408/MinAna.csv
./2008_11_07_0855/15401408/MinAna.csv
./2010_06_05_1933/15401408/MinAna.csv
./2008_11_21_0936/15401408/MinAna.csv
./2009_12_04_0900/15401408/MinAna.csv
./2009_04_29_1047/15401408/MinAna.csv
./2009_07_10_0910/15401408/MinAna.csv
./2010_11_12_1453/15401408/MinAna.csv
./2010_02_05_0900/15401408/MinAna.csv
./2010_06_18_0915/15401408/MinAna.csv
./2010_11_19_1309/15401408/MinAna.csv
./2010_07_30_0915/15401408/MinAna.csv
./2010_04_03_0925/15401408/MinAna.csv
./2010_03_26_0900/15401408/MinAna.csv
./2009_04_24_0900/15401408/MinAna.csv
./2010_10_08_0915/15401408/MinAna.csv
./2009_08_14_0910/15401408/MinAna.csv
./2010_04_09_0900/15401408/MinAna.csv
./2009_03_27_0900/15401408/MinAna.csv
./2010_07_23_0915/15401408/MinAna.csv
./2010_05_14_0915/15401408/MinAna.csv
./2009_07_03_0910/15401408/MinAna.csv
./2009_07_31_0910/15401408/MinAna.csv
./2009_09_18_0910/15401408/MinAna.csv
./2009_06_26_0900/15401408/MinAna.csv
./2011_01_28_0345/15401408/MinAna.csv
./2010_08_20_0915/15401408/MinAna.csv
./2010_04_02_1408/15401408/MinAna.csv
./2011_02_18_0345/15401408/MinAna.csv
./2011_04_01_0345/15401408/MinAna.csv
./2008_10_03_1014/15401408/MinAna.csv
./2011_02_11_0345/15401408/MinAna.csv
./2010_09_17_0915/15401408/MinAna.csv
./2010_12_24_0345/15401408/MinAna.csv
./2008_10_31_1056/15401408/MinAna.csv
./2009_10_30_0910/15401408/MinAna.csv
./2011_03_04_0345/15401408/MinAna.csv
./2010_07_16_0915/15401408/MinAna.csv
./2010_07_09_0915/15401408/MinAna.csv
./2009_06_12_1133/15401408/MinAna.csv
./2009_12_18_0906/15401408/MinAna.csv
./2009_02_20_1050/15401408/MinAna.csv
./2009_10_23_0910/15401408/MinAna.csv
./2009_04_10_0900/15401408/MinAna.csv
./2009_06_19_0900/15401408/MinAna.csv
./2011_07_08_0345/15401408/MinAna.csv
./2008_10_03_1033/15401408/MinAna.csv
./2009_01_16_0922/15401408/MinAna.csv
./2010_11_26_0915/15401408/MinAna.csv
./2010_06_11_0915/15401408/MinAna.csv
./2009_02_17_1519/15401408/MinAna.csv
./2011_05_06_0345/15401408/MinAna.csv
./2009_05_07_1020/15401408/MinAna.csv
./2011_07_15_0345/15401408/MinAna.csv
./2010_01_15_0900/15401408/MinAna.csv
./2010_10_29_0915/15401408/MinAna.csv
./2008_09_26_1104/15401408/MinAna.csv
./2008_12_12_1002/15401408/MinAna.csv
./2009_02_27_0947/15401408/MinAna.csv
./2010_01_22_0920/15401408/MinAna.csv
./2010_12_17_0345/15401408/MinAna.csv
./2010_03_05_0900/15401408/MinAna.csv
./2010_11_12_0915/15401408/MinAna.csv
./2009_05_29_0900/15401408/MinAna.csv
./2009_09_25_0910/15401408/MinAna.csv
./2009_04_17_1056/15401408/MinAna.csv
./2009_12_11_0900/15401408/MinAna.csv
./2010_01_01_0900/15401408/MinAna.csv
./2010_04_23_0910/15401408/MinAna.csv
./2010_04_30_0915/15401408/MinAna.csv
./2008_10_03_0950/15401408/MinAna.csv
./2010_10_22_1845/15401408/MinAna.csv
./2009_05_22_0900/15401408/MinAna.csv
./2011_03_25_0345/15401408/MinAna.csv
./2008_10_10_0902/15401408/MinAna.csv
./2011_07_22_0345/15401408/MinAna.csv
./2010_09_03_0915/15401408/MinAna.csv
./2010_08_13_0915/15401408/MinAna.csv
./2010_12_10_0944/15401408/MinAna.csv

Une idée comment je pourrais regrouper tout cela ensemble ? (il n'y a pas besoin de les remettre dans l'ordre). Merci beaucoup d'avance, et bonne année tant qu'on y est.

Dernière modification par Miloose (Le 10/01/2012, à 18:00)

Hors ligne

#1515 Le 10/01/2012, à 18:17

Bousky

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Voila comment je ferais (j'ai pas testé) pour concaténer tous les ./xxx/yyy/MinAna.csv dans yyy.csv :

for i in */*/MinAna.csv ; do
    cat $i >> ${i:16:8}.csv
done

Il faut te mettre dans le bon dossier et que les yyy.csv soient vides ou inexistants au départ.


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#1516 Le 10/01/2012, à 18:19

Rolinh

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Tu veux les classer par numéro de série et ensuite date? Parce que vu que tous les CSV ont le même nom...
Ou bien: dossier no de série et fichier date.csv ?

Dernière modification par Rolinh (Le 10/01/2012, à 18:20)


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

Hors ligne

#1517 Le 10/01/2012, à 18:38

Miloose

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

J'aurais du être plus précis, désolé. Je dois mettre tous les fichiers avec le même numéro de série ensemble. Par exemple, tous les csv fichiers qui sont en-dessous de /yyyymmddhhmm/15401408/. Il y a chaque fois un seul fichier en-dessous de chaque dossier, mais pleins de dates différentes pour chaque numéro de série (voir l'exemple). On peut se baser sur le résultat de la commande find. Donc, si on regroupe tous les fichiers 15401408 ci-dessus, c'est bon pour moi.

Merci!

Hors ligne

#1518 Le 10/01/2012, à 19:11

Bousky

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Mais tu veux les regrouper comment : les mettre dans un même dossier (auquel cas il faut renommer les fichier), les concaténer pour avoir un fichier par numéro de série (ce que fait ma proposition), … ?


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#1519 Le 10/01/2012, à 19:31

Rolinh

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Je ne comprend pas non plus. Si tu les regroupes dans le même dossier et qu'ils ont tous le même nom, ça ne va pas aller!


Blog
"If you put a Unix shell to your ear, do you hear the C ?"

Hors ligne

#1520 Le 10/01/2012, à 20:03

Miloose

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Je dois regrouper tous les MinAna.csv qui se trouvent en-dessous d'un dossier 15401408 dans un seul fichier, tous ceux qui se trouvent en-dessous d'un dossier 15401409 dans un autre fichier,...

Le but est d'avoir toutes les données concernant la machine 15401408 dans un fichier, celles concernant la machine 15401409 dans un autre...

Si c'est toujours pas clair, j'explique la finalité du truc. Ce sont des données vibratoires d'éoliennes que je dois pouvoir importer dans un soft. J'ai reçu les données dans le format suivant:
/date/numero/MinAna.csv (date et numero sont des dossiers) ou MinAna.xls. J'ai déjà converti tous les xls en csv. J'ai donc environ 100 dossiers avec des dates différentes, en-dessous desquels j'ai chaque fois 25 sous-dossiers avec les numéros de série, et dans chaque sous-dossier j'ai un fichier de données.

Je dois donc aller chercher tous les fichiers MinAna.csv qui se rapportent à une éolienne (environ 100 par éolienne, 25 éoliennes) et les regrouper dans un seul fichier que je pourrai importer par après. C'est normalement un one-shot, donc si ce n'est pas entièrement automatique, c'est pas grave. Par exemple, si je dois insérer le numéro manuellement, c'est bon.

J'espère que cette fois j'ai été assez clair, et merci pour votre patience.

Hors ligne

#1521 Le 10/01/2012, à 20:08

Bousky

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Miloose a écrit :

Je dois regrouper tous les MinAna.csv qui se trouvent en-dessous d'un dossier 15401408 dans un seul fichier, tous ceux qui se trouvent en-dessous d'un dossier 15401409 dans un autre fichier,...

Donc regarde mon post #1515.

Dernière modification par Bousky (Le 10/01/2012, à 20:08)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#1522 Le 10/01/2012, à 21:14

Miloose

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Waaaw, je suis impressionné...

Désolé d'avoir fait traîner en longueur, mais je n'étais plus sur mon PC pour essayer, et en suivant les posts sur mon smartphone, je pensais que ta proposition regroupait tout dans un seul fichier. J'aurais du mieux lire, et je devrais aussi avoir une deuxième vie pour apprendre le shell...

Me voilà maintenant avec mes 25 fichiers de 70 Mo chacuns, je vais pouvoir commencer les choses sérieuses. Un tout grand merci !

Hors ligne

#1523 Le 10/01/2012, à 23:56

yamo

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut,

Miloose a écrit :

Waaaw, je suis impressionné...

Désolé d'avoir fait traîner en longueur, mais je n'étais plus sur mon PC pour essayer, et en suivant les posts sur mon smartphone, je pensais que ta proposition regroupait tout dans un seul fichier. J'aurais du mieux lire, et je devrais aussi avoir une deuxième vie pour apprendre le shell...

Me voilà maintenant avec mes 25 fichiers de 70 Mo chacuns, je vais pouvoir commencer les choses sérieuses. Un tout grand merci !

Peux tu donner un exemple de résultat de la commande ; je ne comprend pas du tout la commande : ${i:16:8}


Stéphane
--
Debian 7.0 XFCE 4.8   - #ubuntu sur freenode

sudo / matrix

Hors ligne

#1524 Le 11/01/2012, à 00:20

Bousky

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Ça renvoie 8 caractères de $i en partant du 16ème (en comptant à partir de 0), ce qui correspond dans ce cas précis au numéro de série. Regarde ici (en anglais) ou tout simplement « man bash ».

Dernière modification par Bousky (Le 19/01/2012, à 23:15)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#1525 Le 19/01/2012, à 20:56

linuxienubuntiste

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut et désolé de vous interrompre ^^

J'aurai besoin d'aide pour un script simple mais je suis un brelle sad.
Juste pour installer un paquet i386 sur un machine 64bits

gksu dpkg -i --force-architecture [le paquet sélectionné]

Merci d'avance

Hors ligne

Haut de page ↑