Heute habe ich etwas über das tr
Kommando gelernt .
Aber ich war fest entschlossen, den Unterschied zwischen -c
und zu verstehen -C
.
Auf dem Handbuch stand:
-C Complement the set of characters in string1, that is ``-C ab'' includes every character except for `a' and `b'.
-c Same as -C but complement the set of values in string1.
Ich bin nicht ganz verstehen , was tut set of values in string1
der -c
mittlere Option.
Ich dachte, es könnte String 1 "ab"
als Ganzes behandeln und wird Single a
und entkommen b
.
Also habe ich ein Experiment gemacht:
⇒ echo "ab_a_b" | tr -C 'ba' 'c'
abcacbc%
⇒ echo "ab_a_b" | tr -c 'ba' 'c'
abcacbc%
Die Dinge entsprachen nicht meinen Erwartungen!
Also, was ist der Unterschied zwischen -C
und -c
im tr
Kommando?
Softwareversion: BSD 2004 unter OSX10.10
command-line
tr
Zen
quelle
quelle
Antworten:
Das POSIX-Handbuch sagt Folgendes:
und enthält den folgenden Hinweis
Daraus
-c
ergibt sich, dass Sie mit der Option numerische Werte angeben können, die ASCII-Zeichen darstellen, anstatt die Zeichen selbst zu verwenden.quelle
set of values
in dieser frühen Version bedeutet.Diese Frage bezieht sich dann eigentlich auf BSD tr, nicht auf gnu tr.
BSD tr man:
GNU tr Mann:
OSX eingebaute Tools werden meiner Meinung nach die BSD-Versionen sein.
[Tippfehler behoben, sed / tr]
quelle