linux - comandi - ls unix




Rimozione di parte di un nome file per più file su Linux (4)

Per prima cosa, hai \e invece di -e .

Voglio rimuovere test.extra da tutti i miei nomi di file nella directory corrente

for filename in *.fasta;do 

    echo $filename | sed \e 's/test.extra//g'

done

ma si lamenta di non aver trovato file.echo per essere sicuro che sia elencato correttamente.


Prima di tutto usa 'sed -e' invece di '\ e'

E ti suggerirei di farlo in questo modo in bash

for filename in *.fasta; do 
    [ -f "$filename" ] || continue
    mv "$filename" "${filename//test.extra/}"

done

Prova il comando rename :

rename 's/test.extra//g' *.fasta

So che questo battistrada è vecchio, ma il seguente oneliner, ispirato alla risposta convalidata, mi ha aiutato molto;)

for filename in ./*; do mv "./$filename" "./$(echo "$filename" | sed -e 's/test.extra//g')";  done




shell