Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 49
  1. #1

    [script] dannati nomi con spazi

    devo rinominare una quantità di file con nomi con spazi
    con bash e find non ce ne sto andando in fuori perchè mi spezzetta i nomi

    qualcuno un po' agile con perl e simili mi può mica indicare la retta via?

    umilmente thx
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  2. #2
    python è la retta via...ehehe dimmi tutto
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  3. #3
    ho una dir con tanti file e dir dentro
    codice:
    [shi@pygo ~] $ find bkp/ | wc -l
    80051
    a occhio circa 80051
    ce n'è un sacco con nomi con spazi, vorrei sostituirli con dei _

    denghiu
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  4. #4
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Viene meglio in C
    Inizio a provare a farlo
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  5. #5
    codice:
    import os
    
    DIR = '/tua/dir'
    FILES = os.listdir(DIR)
    for file in FILES:
        if ' ' in file:
            newfile = file.replace(' ', '_')
            os.rename(file, newfile)
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  6. #6
    Originariamente inviato da /dev/null
    Viene meglio in C
    non credo proprio
    solo per includere gli header in C scriveresti più righe
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  7. #7
    vero

    grazie mille korn!!
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  8. #8
    non scende nelle sottodir
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  9. #9
    Originariamente inviato da adarkar
    non scende nelle sottodir
    non lo sapevo, basta dirlo che facciamo la versione 2
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  10. #10
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    gcc -o rename rename.c
    codice:
    rename.c
    
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <dirent.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    
    #define DEFAULT_DIR_TO_SCAN		"."
    
    #define CHR_TO_CHANGE			' '
    #define CHR_CHANGED			'_'
    
    
    char * stredit ( const char * s, char c1, char c2 );
    
    
    
    int main ( int argc, char * argv [ ] )
    {
    	DIR * directory;
    	struct dirent * fileInDir;
    	int fd;
    	char * dirname;
    	
    	char * newname;
    	
    	if ( argc > 2 ) {		// FIXME: Devo poter scannare piu' dirs.
    		printf ( "Troppi argomenti.\nUsage: %s [DIRECTORY]\n", argv[0] );
    		exit ( 1 );
    	} else if ( argc == 2 ) {
    		dirname = argv[1];
    	} else {			// argc == 1
    		dirname = DEFAULT_DIR_TO_SCAN;
    	}
    	
    	
    	directory = opendir ( dirname );
    	if ( directory == NULL ) {
    		printf ( "Non posso fare un listato della directory \"%s\".\n" );
    		exit ( 1 );
    	}
    	
    	fd = dirfd ( directory );
    	chdir ( dirname );
    	
    	while ( ( fileInDir = readdir ( directory ) ) != NULL ) {
    		newname = stredit ( fileInDir->d_name, CHR_TO_CHANGE, CHR_CHANGED );
    		
    		rename ( fileInDir->d_name, newname );
    		
    		free ( newname );
    	}
    	
    	closedir ( directory );
    	
    	
    	return 0;
    }
    
    char * stredit ( const char * s, char c1, char c2 )
    {
    	int len = strlen(s);
    	char * rs = (char *) malloc ( len + 1 );
    	int i;
    	
    	for ( i = 0; *(s+i); i ++ ) {
    		if ( *(s+i) == c1 ) {
    			*(rs+i) = c2;
    		} else {
    			*(rs+i) = *(s+i);
    		}
    	}
    	*(rs+i+1) = '\0';
    	
    	return rs;
    }
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.