Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    160

    [BASH] Lo script non effettua le modifiche

    Ciao

    Spero che ora il titolo del thread vada bene.

    Ho un problema con il seguente script che, quando lo avvio, non effettua le modifiche che mi aspetto faccia su alcuni file. Questo è il codice:

    codice:
    #!/bin/bash
    
    #
    #   Questo è un piccolo script che prende come argomenti:
    #   - il pathname di una directory
    #`  - il pathname di un file contenente testo
    #`  - una parola chiave
    #   - un'opzione per indicare se la ricerca è case sensitive oppure no
    #
    #   Lo script deve individuare tutti i file contenuti nella directory (ricorsivamente), che abbiano
    #   l'estensione specificata (o tutti se assente) e che non contengano la parola chiave specificata 
    #   (o tutti se assente)
    #
    #   Deve, inoltre, aggiungere (all'inizio, prima del testo esistente) ad ognuno di questi file il 
    #   testo contenuto nel file di testo specificato
    #
    
    
    if [[ -z "$1" || -z "$2" ]];    # Controlla la presenza degli argomenti
    then
       echo "Usage: `basename $0` [PATHNAME] [TEXTFILEPATH] {KEYWORD} {EXTENSION} {-c}"
       echo
       exit 65
    fi
    
    if [[ -z "$3" && -z "$4" ]];   # Se non sono presenti la keyword e l'estensione...
    then
       if [[ "$5" = "-c" ]];   # Se è presente l'opzione -c allora la ricerca è case sensitive
       then
          for filename in $(find $1 -name "*" -type f)
          do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt 
          mv $wd/filetmp.txt $filename
          done
       else
       for filename in $(find $1 -iname "*" -type f)     # ...altrimenti è case insensitive
       do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt 
          mv $wd/filetmp.txt $filename
       done
       fi
    fi
    
    if [[ -n "$3" && -z "$4" ]];     # Se è presente la keyword e non è presente l'estensione
    then
       if [[ "$5" = "-c" ]];    # Se è presente l'opzione -c allora la ricerca è case sensitive
       then
          for filename in $(find $1 -name "*" -type f | xargs grep -ivq "$3")
          do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt 
          mv $wd/filetmp.txt $filename
          done
       else
       for filename in $(find $1 -iname "*" -type f | xargs grep -ivq "$3")     # ...altrimenti è case insensitive
       do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt
          mv $wd/filetmp.txt $filename
       done
       fi
    fi
    
    if [[ -z "$3" && -n "$4" ]];     # Se non è presente la keyword ed è presente l'estensione
    then
       if [[ "$5" = "-c" ]];     # Se è presente l'opzione -c allora la ricerca è case sensitive
       then
          for filename in $(find $1 -name "*.$4" -type f)
          do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt 
          mv $wd/filetmp.txt $filename
          done
       else
       for filename in $(find $1 -iname "*.$4" -type f)    # ...altrimenti è case insensitive
          do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt
          mv $wd/filetmp.txt $filename
       done
       fi
    fi
    
    # Altrimenti significa che sono presenti sia la keyword che l'estensione..
    
    if [[ "$5" = "-c" ]];      # Se è presente l'opzione -c allora la ricerca è case sensitive
    then
       for filename in $(find $1 -name "*.$4" -type f | xargs grep -ivq "$3")
       do
       wd="$1"
       cat $2 $filename > $wd/filetmp.txt 
       mv $wd/filetmp.txt $filename
       done
       else
       for filename in $(find $1 -iname "*.$4" -type f | xargs grep -ivq "$3")      # ...altrimenti è case insensitive
       do
          wd="$1"
          cat $2 $filename > $wd/filetmp.txt
          mv $wd/filetmp.txt $filename
       done
       fi
    fi
    
    exit 0
    Chi può aiutarmi?

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    160
    up

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.