Beispiel:
3|100|test@test.com|0|0|6:1,10,11,12,13,2,3,4,5,6,9|7:1,10,11,13,16,2,4,5,6,9|
Erwartete Ansicht nach grep:
test@test.com
Beispiel:
3|100|test@test.com|0|0|6:1,10,11,12,13,2,3,4,5,6,9|7:1,10,11,13,16,2,4,5,6,9|
Erwartete Ansicht nach grep:
test@test.com
Antworten:
Verwendung cut
:
$ echo '3|100|test@test.com|0|0|6:1,10,11,12,13,2,3,4,5,6,9|7:1,10,11,13,16,2,4,5,6,9|' |\
cut -d'|' -f3
test@test.com
Vielleicht ist awk für diese Verwendung besser geeignet:
awk 'BEGIN { FS = "|" } ; { print $3 }'
Wenn Sie mehr als ein Feld aus einer solchen Eingabe extrahieren müssen, ist es meiner Meinung nach am einfachsten, awk zu verwenden.
(AUS: entschuldigen Sie, wenn ich in eine falsche Richtung weise )
Warum grep? Verwendencut
echo "3|100|test@test.com|0|0|6:1,10,11,12,13,2,3,4,5,6,9|7:1,10,11,13,16,2,4,5,6,9|" | cut -d '|' -f 3
Stellen Sie sich vor, Ihr Inhalt ist in dieser Datei vorhanden file1
[max @ localhost ~] $ cat file1 3 | 100 | test@test.com | 0 | 0 | 6: 1,10,11,12,13,2,3,4,5,6,9 | 7: 1 10,11,13,16,2,4,5,6,9 |
third
Verwenden Sie diesen Befehl, um das Feld auszuschneiden
[max @ localhost ~] $ cut -d "|" -f3 Datei1
test@test.com
Hier
-d: Gibt an, dass das Zeichen | verwendet werden soll als Begrenzer
-f1: Erstes Feld drucken, wenn Sie das zweite Feld drucken möchten, verwenden Sie -f2, das dritte Feld verwenden Sie -f3 und so weiter ...
Angenommen, der file1
Inhalt ist so
[max @ localhost ~] $ cat file1
root: x: 0: 0: root: / root: / bin / bash
Dann müssen wir :
als Trennzeichen so verwenden
first
Verwenden Sie zum Ausschneiden des Feldes f1
[max @ localhost ~] $ cut -d ":" -f1 Datei1 Wurzel
second
Verwenden Sie zum Ausschneiden des Feldes f2
[max @ localhost ~] $ cut -d ":" -f2 Datei1 X
third
Verwenden Sie zum Ausschneiden des Feldes f3
[max @ localhost ~] $ cut -d ":" -f3 Datei1 0
Nur zum Spaß, hier ist, wie Sie es machen können grep
und tr
:
<infile grep -Eo '^([^|]+\|){3}' | grep -Eo '[^|]+\|$' | tr -d '|'
Der erste reguläre Ausdruck erfasst die ersten drei durch Pipe getrennten Felder. Der zweite Grep wählt das letzte Feld aus und entfernt das verbleibende Trennzeichen.