Suche…


Bemerkungen

Bash-Referenzhandbuch: Brace Expansion

Erstellen Sie Verzeichnisse, um Dateien nach Monat und Jahr zu gruppieren

$ mkdir 20{09..11}-{01..12}

Wenn Sie den Befehl ls , werden die folgenden Verzeichnisse erstellt:

2009-01 2009-04 2009-07 2009-10 2010-01 2010-04 2010-07 2010-10 2011-01 2011-04 2011-07 2011-10
2009-02 2009-05 2009-08 2009-11 2010-02 2010-05 2010-08 2010-11 2011-02 2011-05 2011-08 2011-11
2009-03 2009-06 2009-09 2009-12 2010-03 2010-06 2010-09 2010-12 2011-03 2011-06 2011-09 2011-12

Wenn Sie im Beispiel eine 0 vor 9 sichergestellt, dass die Zahlen mit einer einzelnen 0 aufgefüllt werden. Sie können auch Nummern mit mehreren Nullen auffüllen, zum Beispiel:

$ echo {001..10}
001 002 003 004 005 006 007 008 009 010

Erstellen Sie eine Sicherungskopie von Punktdateien

$ cp .vimrc{,.bak}

Dies erweitert den Befehl cp .vimrc .vimrc.bak .

Dateinamenerweiterung ändern

$ mv filename.{jar,zip}

Dies wird in mv filename.jar filename.zip .

Verwenden Sie Inkremente

$ echo {0..10..2}
0 2 4 6 8 10

Ein dritter Parameter zur Angabe eines Inkrements, dh {start..end..increment}

Die Verwendung von Inkrementen ist nicht nur auf Zahlen beschränkt

$ for c in {a..z..5}; do echo -n $c; done
afkpuz

Verwenden der Klammererweiterung zum Erstellen von Listen

Bash kann leicht Listen aus alphanumerischen Zeichen erstellen.

# list from a to z    
$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
    
# reverse from z to a
$ echo {z..a}
z y x w v u t s r q p o n m l k j i h g f e d c b a

# digits
$ echo {1..20}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
    
# with leading zeros
$ echo {01..20}
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
    
# reverse digit
$ echo {20..1}
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
   
# reversed with leading zeros
$ echo {20..01}
20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01

# combining multiple braces
$ echo {a..d}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3

Brace Expansion ist die allererste Erweiterung, die nicht mit anderen Erweiterungen kombiniert werden kann.

Es können nur Zeichen und Ziffern verwendet werden.

Das funktioniert nicht: echo {$(date +$H)..24}

Erstellen Sie mehrere Verzeichnisse mit Unterverzeichnissen

mkdir -p toplevel/sublevel_{01..09}/{child1,child2,child3}

Dies wird eine Top - Level - Ordner mit dem Namen erstellen toplevel , neun Ordner innerhalb der toplevel - sublevel_01 sublevel_02 child1 child2 child3 toplevel - Namen sublevel_01 , sublevel_02 usw. Dann innerhalb dieser Unterebenen: child1 , child2 , child3 Ordner, geben Sie:

toplevel/sublevel_01/child1
toplevel/sublevel_01/child2
toplevel/sublevel_01/child3
toplevel/sublevel_02/child1

und so weiter. Ich finde das sehr nützlich, um mehrere Ordner und Unterordner für meine speziellen Zwecke mit einem Bash-Befehl zu erstellen. Ersetzen Sie Variablen, um die Informationen, die dem Skript bereitgestellt werden, zu automatisieren / zu analysieren.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow