Ich habe einen Befehl, den Zeitpunkt von Dateinamen extrahiert und zählt die einzigartigen Tage:den sed Ausgangs gibt 10 verschiedene Ergebnisse auf Solaris Sortierung und 11
find xml/ -type f -name "*.201604*.xml" | head -5 | sed "s/.*\.\(2016[0-9]\{4\}\)\(.*\)/\1/g" | sort | uniq -c
Die Ergebnisse auf Solaris 10 sind:
# find xml/ -type f -name "*.201604*.xml" | head -5 | sed "s/.*\.\(2016[0-9]\{4\}\)\(.*\)/\1/g" | sort | uniq -c
2 20160412
1 20160417
2 20160418
# uname -a
SunOS localhost 5.10 Generic_150400-26 sun4u sparc SUNW,SPARC-Enterprise
# which sed sort
/usr/bin/sed
/usr/bin/sort
Die Ergebnisse auf Solaris 11 sind:
$ find xml/ -type f -name "*.201604*.xml" | head -5 | sed "s/.*\.\(2016[0-9]\{4\}\)\(.*\)/\1/g" | sort | uniq -c
1 20160401
1 20160403
1 20160405
1 xml/results/subres/ABC.DEF.GH01.20160401224003.123456.123456.xml
1 xml/results/subres/ABC.DEF.GH02.20160412124035.234567.234567.xml
$ uname -a
SunOS localhost 5.11 11.2 sun4v sparc sun4v
$ which sed sort
/usr/bin/sed
/usr/bin/sort
Aus irgendeinem rea Sohn, auf Solaris 11 der sort
Befehl bewirkt, dass die sed
den vollständigen Dateipfad anstelle von übereinstimmenden Regex-Ausdruck zurückgeben.
Es funktioniert ohne Art obwohl (Solaris 11):
$ find xml/ -type f -name "*.201604*.xml" | head -5 | sed "s/.*\.\(2016[0-9]\{4\}\)\(.*\)/\1/g"
20160403
20160401
20160401
20160412
20160405
Warum? Hat jemand anderes dieses Verhalten?
Welche Ausgabe erhalten Sie unter Solaris 11, wenn Sie 'sort | ersetzen uniq -c' mit einer einfachen 'Katze'? –
@AndrewHenle das gleiche Ergebnis wie bei 'sort', es zeigt zwei Dateinamen statt regex Ergebnis. – schabluk
Ist 'sed' Aliasing? –