Ich habe folgende Datei:
other lines . . .
blah blah blah (:34)
Ich möchte das Vorkommen von Zahlen in der obigen Datei finden. Ich hatte die Idee dass:
grep [0-9] filename
Aber das druckt das Ganze:
blah blah blah (:34)
Eher will ich nur 34
. Gibt es eine Möglichkeit dazu?
command-line
bash
text-processing
grep
Ameisen
quelle
quelle
man grep
Antworten:
Sie können verwenden,
grep -E
um auf die erweiterte Syntax für reguläre Ausdrücke zuzugreifen (wie egrep ).Ich habe eine Testdatei mit folgendem Inhalt erstellt:
Nun können Sie die Zahlen allein aus dem Text herauslesen
wird ausgegeben.
Hier wird "-o" verwendet, um nur das übereinstimmende Segment der Zeile und nicht den vollständigen Inhalt der Zeile auszugeben.
Die eckigen Klammern (z. B. {und}) geben die Anzahl der Übereinstimmungen an. {1,4} erfordert, dass das vorherige Zeichen oder die Zeichenklasse mindestens einmal, jedoch nicht mehr als viermal vorkommt.
Hoffe das hilft
quelle
grep -Eo '[0-9]{1,}' testfile
Sie können den in
[:digit:]
Abschnitt 9.3.5 des POSIX-Standards angegebenen Ausdruck für RE-Klammern in Kombination mit dem-o
Flag verwenden, um nur übereinstimmende "Wörter" zu drucken.quelle
grep -o
druckt nur den passenden Teil der Zeile. Andernfalls druckt grep alle Zeilen mit dem Muster.quelle
Ich würde curl verwenden, um lokal oder per Fernzugriff auf Ihre Datei zuzugreifen, dann würde ich Zeilen mit eingewickelten Zahlen (:) durchgehen, diese Teile abschneiden und in eine Datei schreiben
Wenn die akzeptierte Antwort ignoriert wird, dass in den vorherigen Zeilen der Datei möglicherweise Zahlen stehen, funktioniert dies für die Beispieldaten, aber was ist, wenn die Datei remote ist?
Lokal
In diesem Beispiel wird
output.txt
Ihr aktueller Ordner überschrieben, auf den wirinput.txt
von Ihrem öffentlichen Ordner aus zugreifen .Fernbedienung
In diesem Beispiel
output.txt
in der aktuellen Ordner überschrieben werden, zugreifen wirinput.txt
aushttps://yoursite.com/Public/
.quelle
curl
wenn ein einfachescat
tun würde?