-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcommandline-tutorial.txt
33 lines (24 loc) · 1.29 KB
/
commandline-tutorial.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Final command:
find output -type f -name '*.png' 2> /dev/null -exec expr {} : '[^/]*/\(.*\)' \; | xargs -i compare ref/{} output/{} compare/{}
Kurze Demo, was wir tun wollen:
compare ref/oberkela/obama_swapped.png output/oberkela/obama_swapped.png compare/oberkela/obama_swapped.png
-> Aber mit allen Bildern in den Ordnern (compare ist ein ImageMagick Command)
Beginn:
find output
-> alle Dateien und Ornder im Folder "output"
Wir wollen nur Files, keine Ordner
find output -type f
Wir wollen nur png Files
find output -type f -name '*.png'
Redirecten des nervigen Permission Denied Errors
find output -type f -name '*.png' 2> /dev/null
(2> redirected den stderr)
Etwas mit diesem Output machen (rote Schrift)
find output -type f -name '*.png' 2> /dev/null -exec echo -e "\e[1;31m{}\e[0m" \;
Die Ausgabe von Output wegschneiden (regex)
find output -type f -name '*.png' 2> /dev/null -exec expr {} : '[^/]*/\(.*\)' \;
xargs, um die Funde als Argumente von compare verwenden zu können
xargs wandelt den stdin in eine Liste von Argumenten um
find output -type f -name '*.png' 2> /dev/null -exec expr {} : '[^/]*/\(.*\)' \; | xargs echo {}
compare mit diesem Argument aufrufen (final) :
find output -type f -name '*.png' 2> /dev/null -exec expr {} : '[^/]*/\(.*\)' \; | xargs -i compare ref/{} output/{} compare/{}