Krótko mówiąc, jest to globalne wyszukiwanie i zamiana.
glenn jackman
4
Sekcja "{f// /_}oznacza zastąpienie każdej spacji znakiem podkreślenia. Używa to rozszerzenia parametrów Bash, zmienna fzdefiniowana w for f in *\ *;będzie przeprowadzana dla każdego dopasowania rozszerzenia powłoki (globbing). Za każdym razem znaleziona nazwa pliku stanie się wartością $f.
Rozszerzanie parametrów działa w ten //sposób, że każde wystąpienie następującego znaku //(spacja w tym przykładzie), powinno zostać zastąpione znakiem po /(podkreślenie w tym przykładzie).
Odpowiedzi:
To zastępczy wzorzec przy użyciu
bash
rozszerzania parametrów.W
${f// /_}
:Podwójne ukośniki
//
służą do zastąpienia wszystkich wystąpień miejsca_
, jeśli wstawisz jedno ukośnik/
, zastąpione zostanie tylko pierwsze miejsceSpacja jest dostępna, ponieważ zastępujesz spację (podkreśleniem)
Więc wzór jest w zasadzie:
Sprawdź,
man bash
aby uzyskać więcej pomysłów.Aby
Parameter Expansion
odman bash
razu przejść do sekcji :źródło
Sekcja
"{f// /_}
oznacza zastąpienie każdej spacji znakiem podkreślenia. Używa to rozszerzenia parametrów Bash, zmiennaf
zdefiniowana wfor f in *\ *;
będzie przeprowadzana dla każdego dopasowania rozszerzenia powłoki (globbing). Za każdym razem znaleziona nazwa pliku stanie się wartością$f
.Rozszerzanie parametrów działa w ten
//
sposób, że każde wystąpienie następującego znaku//
(spacja w tym przykładzie), powinno zostać zastąpione znakiem po/
(podkreślenie w tym przykładzie).źródło