Nicht deterministisches Verhalten von Grep in Verbindung mit More
Was erwarten Sie danach?
for /l %i in (1,1,100) do @more some.bbl | grep a | md5sum
Höchstwahrscheinlich nicht das:
ec3ecb76408d4225ff23a25d0596e00f *- 13cfd899b90b9cd7aedb406a785e8eac *- 737e8898a65657f1a2ce8012ff1ffe82 *- d4095243e56a7da3b31a352423a5417a *- 319db7810e677414ca1609238bdeba6f *- 31e626a8ce0732fda1fa7499c8b13dfa *- 006fe390f923d50348d65d0bbefa64d8 *- 77708f62cb2d61a45788a656d0979aee *- cda10a9ab71c2bce4df069c479241349 *- b01b71dc7dca11808ca989c4985513ca *- c22a6f8b1cac9a93c4fe10b07a9f483a *- 0b04f4b24f3f183270eb7414f4f86e3d *- 5a2f8b8ad482ae8f70b7ce3384a7c9e2 *- beccdbe737b48c02b48c4524cd89eede *- a16fec5238cfe8dfff6b403ff943a8ca *- ec0cd2edc0009abd14119915a8b563f4 *- 1e78f0012ca09aeade169f815415da40 *- ...
Ich war auch besorgt, also habe ich ein paar Gesundheitsprüfungen durchgeführt:
for /l %i in (1,1,100) do @more some.bbl | md5sum
ergibt 100 mal
ace4f37f3a1433e29696a535c0b79f2c *-
Gleiches für
for /l %i in (1,1,100) do @grep a some.bbl | md5sum
und
d8753d755025a1119cd2910c6f5cb0de *-
Also more
, grep
und md5sum
funktioniert gut von selbst. Auch das Rohr vorher md5sum
ist kein Problem, da
for /l %i in (1,1,100) do @more some.bbl | grep a > out%i md5sum out*
bestätigt das Problem. fc
Bei den Ausgängen finde ich keinen Unterschied. diff
Wenn Sie diese Einstellungen verwenden, werden unsichtbare Unterschiede sichtbar, die von einem Hex-Editor als Unterschiede in den Zeilenenden an scheinbar zufälligen Stellen (und von Datei zu Datei) bestätigt wurden.
Das Problem wird immer noch gesehen, in diesem Beispiel jedoch seltener:
for /l %i in (1,1,100) do @more some.bbl | grep "[a-z]" | md5sum
nachgeben
b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- ef23817185d41987c11cb1fc4371bb76 *- b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- e398e63b60cee3e271967f01350068f1 *- b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- b135bcfe0bcfb7f1c43fe1905164c31e *- ...
Jetzt laufen mir die Ideen aus, was der Grund sein könnte. Mir würde das nicht viel bedeuten, wenn ich in solchen Fällen keine gültigen Zeilen verlieren würde:
for /l %i in (1,1,100) do @more "some.bbl" | grep "\}$" | wc -l
Das gibt
249 249 249 248 255 253 252 248 251 ...
Um ähnliche Probleme zu reproduzieren, können Sie diese Datei verwenden
for /l %i in (1,1,200) do @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>> some.bbl
Weitere Informationen
C:\>ver Microsoft Windows [Version 6.1.7601] C:\>more /h Displays output one screen at a time. MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename ... C:\>grep --ver GNU grep 2.6.3 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. C:\>md5sum --ver md5sum (GNU coreutils) 8.15 Packaged by Cygwin (8.15-1) Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Ulrich Drepper, Scott Miller, and David Madore.
Warum passiert dies?
Aktualisieren: Das Problem verschwindet auch durch das Ersetzen more
von dieser cat
:
C:\>cat --ver cat (GNU coreutils) 8.15 Packaged by Cygwin (8.15-1) Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Torbjörn Granlund and Richard M. Stallman.
0 Antworten auf die Frage
Verwandte Probleme
-
12
Warum wird der Ordner / winsxs so groß und kann er verkleinert werden?
-
2
Erhöhte Berechtigungen für Startanwendungen in Windows?
-
14
PDF Viewer unter Windows
-
7
Welche Windows-Dienste kann ich sicher deaktivieren?
-
8
Firefox PDF-Plugin zum Anzeigen von PDF-Dateien im Browser unter Windows
-
1
Windows verliert das Bildschirmlayout
-
1
Gibt es eine Möglichkeit, Installationen / Updates zu verhindern, die meine Festplatte mit kryptisch...
-
1
Wie kann ich von Ubuntu aus über das Netzwerk auf Windows Vista-Drucker zugreifen?
-
6
Log Viewer unter Windows
-
3
Windows-Hintergrundproblem mit zwei Bildschirmen