Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- formale Sprachen (http://www.informatikerboard.de/board/board.php?boardid=12)
----- grep Komando (http://www.informatikerboard.de/board/thread.php?threadid=4278)
Geschrieben von Eihap am 27.01.2020 um 00:01:
grep Komando
Meine Frage:
weiß jemand wie kann ich mit Hilfe von 'grep' komando ein Wort in einem Text finden , die mit irgendeinem Buchstabe anfängt und mit irgendeinem andren Buchstabe aufhört
Meine Ideen:
weiß jemand wie kann ich mit Hilfe von 'grep' komando ein Wort in einem Text finden , die mit irgendeinem Buchstabe anfängt und mit irgendeinem andren Buchstabe aufhört
Geschrieben von matibo am 27.01.2020 um 10:12:
Wüsste ich wirklich auch gerne :-)
Geschrieben von Liquid am 10.09.2020 um 20:05:
Ist ziemlich einfach mit diesem regulären Ausdruck und dem grep-Kommando möglích:
code: |
1:
|
grep -o '\a.*b' datei.txt |
|
Hier wird jetzt nach allen Wörtern, die mit dem Buchstaben a anfangen und mit einem b enden, gesucht.
Geschrieben von as_string am 15.09.2020 um 17:49:
Hast Du das auch schonmal ausprobiert? Dann hättest Du gemerkt, dass das nicht funktioniert...
Dein Muster trifft immer, wenn irgendwo ein a vorkommt, das irgendwann in derselben Zeile von einem b gefolgt wird. Bei der Frage muss es aber jeweils am Wortanfang/-ende sein.
Ich hab mal testweise eine Textdatei mit diesem Inhalt erstellt:
code: |
1:
2:
3:
4:
|
xyz azb aabb
ghsd fdoin vaeuobrnre
ahh hhh hhb |
|
Da findet er dann:
code: |
1:
2:
3:
4:
|
azb aabb
aeuob
ahh hhh hhb |
|
Nächster Versuch wäre, Wort-Grenzen zu erzwingen durch:
code: |
1:
|
grep -o '\<a.*b\>' test.txt |
|
Ergebnis ist:
code: |
1:
2:
3:
|
azb aabb
ahh hhh hhb |
|
Jetzt steht a und b an Anfang und Ende eines Wortes, aber ich will auch erzwingen, dass es ein Wort ist, dazwischen also nicht irgendein Zeichen (z. B. auch ein Leerzeichen), sondern eben ein Wort-Zeichen mit \w:
code: |
1:
|
grep -o '\<a\w*b\>' test.txt |
|
Das ergibt dann:
als Ergebnis.
Gruß
Marco
Forensoftware: Burning Board, entwickelt von WoltLab GmbH