2016-11-17 3 views
-2

Mit dem Terminal unter MacOS möchte ich ein Wort rekursiv durch den Namen eines Verzeichnisses und eines Dateinamens ersetzen. Zum Beispiel habe ich eine eckige App und der Modulname ist Artikel, alle Dateinamen und Verzeichnisnamen enthalten das Wort Artikel. Ich habe bereits einen Fund gemacht und ersetzt, um Artikel durch Äpfel im Code zu ersetzen. Nun möchte ich dasselbe mit der Dateistruktur machen, so dass sowohl die Dateinamen als auch die Verzeichnisse die gleiche Konvention haben.Wie kann ich rekursiv Datei- und Verzeichnisnamen mit Terminal ersetzen?

Nur zur Information, ich habe bereits versucht, den neuesten Yeoman-Generator zu verwenden, um neue Dateien zu erstellen, aber es scheint ein Problem damit zu sein. Die Alternative besteht darin, ein Verzeichnis zu duplizieren und alle Dateien umzubenennen, was ziemlich zeitaufwendig ist.

Antwort

0

bekam es mit dem folgenden Skript dieses Problem, das ich bin nicht der einzige

var=$1 
if [ -n "$var" ]; then 
    CRUDNAME=$1 
    CRUDNAMEUPPERCASE=`echo ${CRUDNAME:0:1} | tr '[a-z]' '[A-Z]'`${CRUDNAME:1} 
    FOLDERNAME=$CRUDNAME's' 
    # Create new folder 
    cp -R modules/articles modules/$FOLDERNAME 
    # Do the find/replace in all the files 
    find modules/$FOLDERNAME -type f -print0 | xargs -0 sed -i -e 's/Article/'$CRUDNAMEUPPERCASE'/g' 
    find modules/$FOLDERNAME -type f -print0 | xargs -0 sed -i -e 's/article/'$CRUDNAME'/g' 
    # Delete useless files due to sed 
    rm modules/$FOLDERNAME/**/*-e 
    rm modules/$FOLDERNAME/**/**/*-e 
    rm modules/$FOLDERNAME/**/**/**/*-e 
    # Rename all the files 
    for file in modules/$FOLDERNAME/**/*article* ; do mv $file ${file//article/$CRUDNAME} ; done 
    for file in modules/$FOLDERNAME/**/**/*article* ; do mv $file ${file//article/$CRUDNAME} ; done 
    for file in modules/$FOLDERNAME/**/**/**/*article* ; do mv $file ${file//article/$CRUDNAME} ; done 
else 
    echo "Usage: sh rename-module.sh [crud-name]" 
fi 

offenbar arbeiten

https://github.com/meanjs/generator-meanjs/issues/79

zu begegnen
Verwandte Themen