Próbuję napisać ten skrypt powłoki, aby utworzyć w katalogu nadrzędnym kopię folderów znalezionych w bieżącym katalogu. Do tej pory napisałem to:
for folder in *; do
mkdir ../$folder;
done
Chciałbym wykonać operację „znajdź i zamień” na nazwie folderu, aby na przykład folder o nazwie graphics-HD
został skopiowany jakographics-SD
Przepraszam, jeśli to proste, ale absolutnie nie mam doświadczenia ze skryptem powłoki / unix.
Wielkie dzięki! JOT.
unix
script
shell-script
Jem
źródło
źródło
Odpowiedzi:
Dodanie ukośnika końcowego do znaku zastępczego ogranicza dane wyjściowe do katalogów
Będziesz chciał przeczytać o rozszerzaniu parametrów bash - możesz znaleźć i wymienić w powłoce:
źródło
If pattern begins with ‘%’, it must match at the end of the expanded value of parameter.
nie ma nic złego w tym, co masz, oprócz tego, że utworzy foldery z plików, a także folderów. Możesz sprawdzić, czy każdy folder jest katalogiem z [-d $ folder], lub użyć find. Z folderu, w którym masz foldery, które chcesz skopiować:
Aby wyszukać i zastąpić, należy zmienić nazwę z rename.berlios.de . możesz zmienić nazwę wszystkich folderów w ten sposób:
źródło