Gibt es eine Möglichkeit, grep
alle Textinstanzen in jedem Anführungszeichenpaar in einer Datei auf andere Weise abzurufen? Ich habe Antworten wie diese gesehen: https://stackoverflow.com/questions/15435056/grep-string-inside-double-quotes, aber sie funktionieren nicht in Fällen, in denen jede Zeile eine beliebige Anzahl von Strings in Anführungszeichen enthalten kann.
Also für eine Eingabe wie diese:
Here was some "text over here", and then there was "text over there".
Ich möchte, dass die Ausgabe wie folgt lautet:
"text over here"
"text over there"
Muss nicht die Anführungszeichen selbst enthalten.
bash
unix
grep
text-manipulation
Salzige Nüsse
quelle
quelle
P
.echo 1111 | grep -o 1{2}
nur verlangt , dass '1' zweimal vorkommt, aber ohne das P das {1} oder {2} oder {2,3} funktionieren nicht.Versuchen:
Hinweis:
[^"]*
Ist die nicht gierige Version des Platzhalters (.*
), sodass Sie mehr als ein Vorkommen pro Zeile zuordnen können.quelle
*?
zB.*?
bezweifle ich , dass[^*]*
wäre nicht gierig genannt werden, wenn auch vielleicht könnte man sagen, auf weniger gierig als".*"
(wenn Die Terminologie wird in der Tat so verwendet. Aber sicher, was die Terminologie angeht. * ist gierig und *? ist faul.-P
Option (die auf einigen Systemen nicht unterstützt wird) natürlichtext
nur ein Beispiel war, aber das kann behoben werden, indem einfach die verdammte Zeichenfolgetext
aus dem Befehl entfernt wird.