Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2015-07-02 20:01:53.0 alle 2015-07-02 20:01:53.0
    bash HAAALP!!!
    Ho in una cartella dei file i cui nomi contengono '- - - - - - - - - - - - - Y' e vorrei rinominarli sostituendo tale stringa con un'altra, ad esempio '-'. Come fare?

    Fino ad ora sono arrivato a

    for i in '- - - - - - - - - - - - - Y'*; do echo $i; done

    per elencarli, ma dovrei mettere mv qualcosa dopo il do.
    • Avatar
      ☺
      Scritto da
      avvelenato
      un mezzo cavallo
      il 2015-07-02 20:43:05.0 alle 2015-07-02 20:43:05.0
      Trollate totali: 14239
      Re: bash HAAALP!!!
      Scritto da:
      > Ho in una cartella dei file i cui nomi contengono '- - - - - - - - - - - - - Y' e vorrei rinominarli sostituendo tale stringa con un'altra, ad esempio '-'. Come fare?
      >
      > Fino ad ora sono arrivato a
      >
      > for i in '- - - - - - - - - - - - - Y'*; do echo $i; done
      >
      > per elencarli, ma dovrei mettere mv qualcosa dopo il do.

      apri un cmd /v e fai
      for %i in ("- - - - - - - - - - - - - Y*.*") do set appoggio=%i&set appoggio=!appoggio:- - - - - - - - - - - - - Y=-!&ren "%i" "!appoggio!"



















      ah già, è bash, scusa.

      **Modificato dall'autore il 02.07.2015 20:51**
      I pedoni possono muoversi solo in avanti.
      • Avatar
        Scritto da
        Non Autenticato
        il 2015-07-02 20:49:19.0 alle 2015-07-02 20:49:19.0
        Re: bash HAAALP!!!
        Scritto da: avvelenato
        > Scritto da:
        > > Ho in una cartella dei file i cui nomi contengono '- - - - - - - - - - - - - Y' e vorrei rinominarli sostituendo tale stringa con un'altra, ad esempio '-'. Come fare?
        > >
        > > Fino ad ora sono arrivato a
        > >
        > > for i in '- - - - - - - - - - - - - Y'*; do echo $i; done
        > >
        > > per elencarli, ma dovrei mettere mv qualcosa dopo il do.
        >
        > apri un cmd /v e fai
        > for %i in ("- - - - - - - - - - - - - Y*.*") do set appoggio=%i&set appoggio=!appoggio:- - - - - - - - - - - - - Y=-!&ren %i !appoggio!
        >
        >
        > ah già, è bash, scusa.

        In realtà non ho bisogno di rinominarli, quei file, ero curioso di vedere come si fa in bash.
        • Avatar
          ☺
          Scritto da
          avvelenato
          un mezzo cavallo
          il 2015-07-02 20:53:11.0 alle 2015-07-02 20:53:11.0
          Trollate totali: 14239
          Re: bash HAAALP!!!
          Scritto da:
          > Scritto da: avvelenato
          > > Scritto da:
          > > > Ho in una cartella dei file i cui nomi contengono '- - - - - - - - - - - - - Y' e vorrei rinominarli sostituendo tale stringa con un'altra, ad esempio '-'. Come fare?
          > > >
          > > > Fino ad ora sono arrivato a
          > > >
          > > > for i in '- - - - - - - - - - - - - Y'*; do echo $i; done
          > > >
          > > > per elencarli, ma dovrei mettere mv qualcosa dopo il do.
          > >
          > > apri un cmd /v e fai
          > > for %i in ("- - - - - - - - - - - - - Y*.*") do set appoggio=%i&set appoggio=!appoggio:- - - - - - - - - - - - - Y=-!&ren %i !appoggio!
          > >
          > >
          > > ah già, è bash, scusa.
          >
          > In realtà non ho bisogno di rinominarli, quei file, ero curioso di vedere come si fa in bash.

          in cmd /v si può fare, ma mi sono dimenticato le virgolette alla fine.

          mi ricordo che anni fa invidiavo linux per la potenza di bash, ma da quando conosco un po' meglio il cmd difficilmente mi trovo a dover usare altro per cazzatine di questo tipo.
          I pedoni possono muoversi solo in avanti.
    • Avatar
      ☺
      Scritto da
      ::1
      il 2015-07-02 22:03:47.0 alle 2015-07-02 22:03:47.0
      Trollate totali: 12321
      Re: bash HAAALP!!!
      Scritto da:
      > Ho in una cartella dei file i cui nomi contengono '- - - - - - - - - - - - - Y' e vorrei rinominarli sostituendo tale stringa con un'altra, ad esempio '-'. Come fare?
      >
      > Fino ad ora sono arrivato a
      >
      > for i in '- - - - - - - - - - - - - Y'*; do echo $i; done
      >
      > per elencarli, ma dovrei mettere mv qualcosa dopo il do.

      Se il nome è veramente quello allora devi stare attento agli spazi che ti possono rompere i comandi, e lo fai usando sempre i doppi apici intorno alle variabili che sai che possono contenere spazi (nel tuo caso $i diventa "$i").
      Detto questo ti serve come calcolare una sottostringa in bash: http://tldp.org/LDP/abs/html/string-manipulation.h... (vedi substring extraction).
      Ora hai tutti gli strumenti per arricchire il tuo for-loop e renderlo funzionale.
      Un ultima accortezza: molti programmi non amano i files che iniziano con il trattino, perché non sanno se stai passando una opzione oppure il nome del file, per quelli gnu almeno (e tutti quelli che usano nelle varie salse getopts) si può indicare la fine delle opzioni e l'inizio dell'elenco di files con il doppio trattino.
      Ad esempio: "rm -ciao-" non funziona, "rm -- -ciao-" sì.
      Young professional woman and busy mom.
      • Avatar
        Scritto da
        Non Autenticato
        il 2015-07-02 22:34:26.0 alle 2015-07-02 22:34:26.0
        Re: bash HAAALP!!!
        Scritto da: ::1
        > Scritto da:
        > > Ho in una cartella dei file i cui nomi contengono '- - - - - - - - - - - - - Y' e vorrei rinominarli sostituendo tale stringa con un'altra, ad esempio '-'. Come fare?
        > >
        > > Fino ad ora sono arrivato a
        > >
        > > for i in '- - - - - - - - - - - - - Y'*; do echo $i; done
        > >
        > > per elencarli, ma dovrei mettere mv qualcosa dopo il do.
        >
        > Se il nome è veramente quello allora devi stare attento agli spazi che ti possono rompere i comandi, e lo fai usando sempre i doppi apici intorno alle variabili che sai che possono contenere spazi (nel tuo caso $i diventa "$i").
        > Detto questo ti serve come calcolare una sottostringa in bash: http://tldp.org/LDP/abs/html/string-manipulation.h... (vedi substring extraction).
        > Ora hai tutti gli strumenti per arricchire il tuo for-loop e renderlo funzionale.
        > Un ultima accortezza: molti programmi non amano i files che iniziano con il trattino, perché non sanno se stai passando una opzione oppure il nome del file, per quelli gnu almeno (e tutti quelli che usano nelle varie salse getopts) si può indicare la fine delle opzioni e l'inizio dell'elenco di files con il doppio trattino.
        > Ad esempio: "rm -ciao-" non funziona, "rm -- -ciao-" sì.

        È come dover imparare un fottuto dialetto le cui regole siano state decise man mano, come il gaelico.
<softv>

Pagina generata in 52 millisecondi

Utenti attivi: 9 nell'ultimo minuto, 26 negli ultimi cinque minuti, 53 negli ultimi 15 minuti