Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Bash script - sed

  1. #1

    Bash script - sed

    Ho scritto uno script in bash banale che fa uso di sed per rinominare una serie di file. Questo è il codice:

    codice:
    #!/bin/sh
    IFS='\n'
    cd /mnt/raid/Mp3
    for file in "`ls *.mp3`"
    do
    #sega gli spazi sostituendoli con _
    filenew=`echo "$file" | sed 's/[ ]/_/g'`
    mv  "$file" $filenew
    done
    $file e $filenew me li stampa correttamente, ossia $file con tutti gli spazi a posto e lo stesso per $filenew con gli _.
    Il problema sta nell'ultimo mv che mi restituisce:

    mv: when moving multiple files, last argument must be a directory
    Try `mv --help' for more information.




    Grazie.

  2. #2
    Utente di HTML.it L'avatar di Ilmalcom
    Registrato dal
    Oct 2002
    Messaggi
    1,345
    Non mancano gli apici attorno a $filenew?

  3. #3
    Ciao intendi "" o ''
    Perchè con "", che servono a vedere una stringa unica con spazi, ho provato ma nn va come è logico che sia!



    Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    52
    oh, proprio oggi ho fatto uno scriptino del genere

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    52
    si vabbene... -_-'

    dicevo, proprio oggi ho fatto uno scriptino del genere.. dovrei avercelo ancora nell'history.. spe

    bada come sei fortunato

    codice:
    ..@..:~/received/Tactical_Neutral_Implant$ OLDIF=$IFS; IFS=$'\n';for i in `ls *.mp3`;do j=`echo $i|sed 's/ /_/'`;mv $i $j;done ;IFS=$OLDIF
    yawn

    [edit]
    notato una cosa, la differenza nel sed (io avevo uno spazio solo da togliere) e ->il dollaro a IFS!!!<--

  6. #6
    Grazie, la differenza stava proprio in quel dollaro!

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.