Ich habe eine Datei mit folgendem Inhalt:
(((jfojfojeojfow
//
hellow_rld
(((jfojfojeojfow
//
hellow_rld
Wie kann ich jede Zeile extrahieren, die mit einer Klammer beginnt?
grep
sed
regex
text-processing
user3069326
quelle
quelle
Antworten:
Das Symbol für den Zeilenanfang ist
^
. Wenn Sie also alle Zeilen drucken(
möchten, deren erstes Zeichen ein a ist , müssen Sie Folgendes eingeben^(
:grep
sed
quelle
Verwenden
perl
Ausgabe:
Erklärung (Regex-Teil)
/^\(/
^
Position am Anfang der Zeichenkette festlegen\(
entspricht dem Zeichen(
wörtlichquelle
Hier ist ein
bash
Einzeiler:Hier lesen wir jede Eingabezeile und wenn die Zeile mit beginnt
(
, wird die Zeile gedruckt. Der Haupttest wird von durchgeführt[[ $i =~ ^\( ]]
.Verwenden von
python
:Hier wird
line.startswith('(')
geprüft, ob die Zeile mit beginnt(
. Wenn ja, wird die Zeile gedruckt.quelle
awk
awk '/^\(/' testfile.txt
Ergebnis
Python
Als Python-Einzeiler:
Oder alternativ:
BSD-Look
look
ist eines der klassischen , aber wenig Unix - Werkzeuge bekannt, die 7. Vom Weg zurück in AT & T Unix - Version erschienenman look
:Das Ergebnis:
quelle
Sie können das Gegenteil tun.
oder
quelle
Verwenden Sie dazu den Befehl grep. Angenommen, die Datei mit dem genannten Inhalt heißt t.txt:
Mit '--color' als weiteres Argument können Sie sogar in Farbe im Terminal sehen, was passt. Diese Anweisung stimmt auch nicht mit Leerzeilen überein.
quelle
(
, nicht nur die, die mit einem beginnen.