Ich habe eine große Textdatei, in der ein Teil davon so aussieht (bearbeitete Werte):
JULIANA XXXX006060 LI1033322 THC BRL 730.00
XXXX006296 AA1004737 THC BRL 1,740.00
SANTOS JULIANA XXXX006668 AA1004786 THC BRL 8,150.00
SANTOS JULIANA CABINDA XXXX006697 AA1004777 THC BRL 2,325.00
SANTOS JULIANA XXXX006699 AA1004790 THC BRL 2,325.00
JULIANA BATA XXXX006141 CCC012946 THC BRL 1,460.00
JULIANA BATA XXXX006153 CCC013054 THC BRL 870.00
JULIANA XXXX006269 CCC013105 THC BRL 870.00
JULIANA XXXX006295 CCC013083 THC BRL 870.00
JULIANA BATA XXXX006305 CCC013043 THC BRL 1,460.00
Ich möchte immer (mit einem cut
oder awk
oder etwas anderem) die Zeichenfolge greifen , die mit beginnt XXXX00
, aber sie befindet sich nie in derselben Feldnummer.
Wie kann ich das in einem Shell-Skript machen?
shell-script
text-processing
Vitor Gatti
quelle
quelle
-E
Option nicht benötigt (obwohl dies keinen Schaden anrichtet).Es scheint, dass Sie das 5. Feld von rechts wollen, also
quelle
Verwendung
grep
mit PCRE:-w
In diesem Fall können Sie mit (Wort) davonkommen. Beachten Sie, dass die Wortbestandteile wie folgt betrachtet werden[[:alnum:]_]
:quelle
Ein paar andere Möglichkeiten
Mit GNU
awk
Bei älteren Versionen von GNU
awk
,--re-interval
könnte erforderlich sein, soMit
tr
undgrep
quelle
Es sieht so aus, als ob die Feldzahlen unterschiedlich sind, weil Sie dort eine Liste von Personen haben und diese eine unterschiedliche Anzahl von Namen haben. aber wahrscheinlich hat keiner von ihnen einen Namen mit 0 darin, also schneiden Sie einfach bis zur ersten durch Leerzeichen getrennten Zeichenfolge mit einer darin vollständig weg, speichern Sie sie und schneiden Sie alles Folgende aus.
quelle