Wie gebe ich den Kontext von einem gnuwin32-grep (grep in windows cmd) korrekt zurück?

349
Some_Guy

Ich möchte eine Kontextzeile nach der gesuchten Zeichenfolge gemäß grep --help zurückgeben

Context control: -B, --before-context=NUM print NUM lines of leading context -A, --after-context=NUM print NUM lines of trailing context -C, --context=NUM print NUM lines of output context 

Jedoch,

 grep -a1 string1 file.txt- 

gibt mir Kontext vor UND nach (gleich mit b1)

 grep -a 1 string1 file.txt 

sucht nach "1" in der Datei "string1"

und, nur um die Dinge etwas seltsamer zu machen,

 grep -c1 string1 file.txt 

gibt mir überhaupt nichts

Vielen Dank im Voraus an alle, die helfen können :)

0
Verwenden Sie Großbuchstaben für Ihre "-A1" oder Kleinbuchstaben, wie Ihre Frage hat? "-a" und "-A" sind unterschiedliche Flaggen, ich hätte gedacht, Kleinbuchstaben würden immer nach 1 in einer Datei namens "string1" suchen Eric Renouf vor 9 Jahren 2
Fantastisch. Manchmal sind es die einfachen Dinge :) Some_Guy vor 9 Jahren 0
Ich frage mich, warum a1 überhaupt als Ersatz für C 1 wirkt ... Some_Guy vor 9 Jahren 1
Vielleicht, weil Windows im Gegensatz zu den meisten * Nixen die Groß- und Kleinschreibung nicht berücksichtigt. Ich dachte, das sei nur eine Dateisystem-Sache, aber anscheinend nicht. terdon vor 9 Jahren 0

1 Antwort auf die Frage

0
Atafar

Bitte beachten Sie nicht, dass für GNU-Dienstprogramme (und im Allgemeinen) die verwendeten Befehlszeilenoptionen von Bedeutung sind. Versuchen

grep -C1 string1 file.txt

stattdessen. Beachten Sie die Großschreibung "C"!

Übrigens -cbedeutet das Flag ' ' count . Statt alle einzelnen Vorkommen anzuzeigen, wird nur die Gesamtzahl der Zeilen angezeigt, in denen die Zeichenfolge in Ihren Dateien vorkommt.