Als «awk» getaggte Fragen

Eine mustergesteuerte Scan- und Verarbeitungssprache.

2
Wie lösche ich ein Eingabefeld in AWK?
Ich transformiere einige Daten mit awk(oder gawk) und möchte eines der Eingabefelder löschen, bevor ich die Ausgabe erneut drucke. Was ich erreichen möchte, ist Folgendes: ~ $ echo 'field1,field2,field3' | awk -F, '{transform($1); delete($2); print $0;}' new_field1,field3 Ich kann nicht einfach eine leere Zeichenfolge zuweisen, $2da dies zu new_field1,,field3(beachten Sie …
7 awk 

1
Regression mit unärem Plus
Bisher konnten numerische Konvertierungen entweder durch Hinzufügen von Null (+0), unärem Plus (+) oder unärem Minus (-) ausgelöst werden: $ gawk --version GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.6-p1, GNU MP 6.1.2) $ gawk 'BEGIN {print "01" + 0}' 1 $ gawk 'BEGIN {print +"01"}' 1 $ gawk 'BEGIN …
7 awk  string  gawk 

1
awk verwendet nicht '||' als Feldtrennzeichen
Ich versuche, awk zu verwenden, um mit einem Trennzeichen für mehrere Zeichen zu schneiden echo 'f1##f2' |awk -F '##' '{print $2}' Es wird gedruckt f2. Wohingegen echo 'f1||f2' |awk -F '||' '{print $1}' druckt f1||f2. Kann jemand erklären, was los ist?
7 awk 

3
Trennzeichen zwischen Aussagen in awk
Aus Gawks Handbuch: Wenn awk-Anweisungen innerhalb einer Regel kurz sind, möchten Sie möglicherweise mehr als eine davon in eine Zeile einfügen. Dies wird erreicht, indem die Anweisungen durch ein Semikolon (';') getrennt werden. Dies gilt auch für die Regeln selbst. Daher könnte das am Anfang dieses Abschnitts gezeigte Programm auch …
7 awk  gawk 

2
Testen von Regex von stdin mit grep | sed | awk
Manchmal möchte ich testen, ob meine Regex korrekt ist. Wie kann ich Reverse regexMatch von stdin machen? Zum Beispiel kann ich einen String mit dem bereitgestellten regulären Ausdruck abgleichen, wie zum Beispiel: grep "\(foo\)-bar" foo bar foo-bar foo-bar #Match found Was ich tun möchte, ist das Gegenteil, so etwas: $ …



1
Ist es möglich, aufeinanderfolgende Spalten in AWK hinzuzufügen?
Ich habe also eine große Datei, die Zählwerte in Spalten enthält. Eine kürzere Version der Datei lautet wie folgt: Id,Sample1,Sample2,Sample3,Sample4,Sample5,Sample6,Sample7,Sample8,Sample9,Sample10,Sample11,Sample12,Sample13,Sample14,Sample15,Sample16,Sample17,Sample18,Sample19,Sample20,Sample21,Sample22,Sample23,Sample24 bar,80,167,1419,2973,16846,31523,257,466,4004,6662,13862,22205,116,284,786,1198,467,853,3333,6054,18122,34030,22,41 foo,29,71,582,1143,6382,11466,99,138,1388,2176,4337,7043,55,106,349,600,211,319,1468,2418,8661,15285,12,12 qaz,23,59,478,904,4919,8538,85,147,1553,2463,5061,8094,56,84,271,411,176,291,1268,2132,7219,12436,6,13 etc,27,43,464,970,4101,8092,90,111,1441,2174,4954,7940,41,85,249,378,130,234,1075,1856,5920,10854,9,18 zxc,15,34,332,609,2568,4652,53,82,989,1592,3219,5034,46,87,315,479,104,170,759,1297,4926,8171,2,9 qwe,9,20,146,310,2932,5391,48,94,842,1349,2823,4430,23,34,115,235,113,172,811,1362,4178,7576,8,10 asd,16,39,388,687,2796,5303,51,110,763,1216,2610,4165,50,79,351,603,113,156,824,1345,3337,6168,4,9 abc,6,16,91,192,385,654,21,32,326,496,7884,12266,10,19,56,89,41,62,251,367,1545,2657,,4 xyz,14,33,249,538,1634,2983,28,71,555,952,1697,2712,23,34,111,167,95,148,650,1131,3204,5814,4,12 Was ich tun möchte, ist, aufeinanderfolgende Spalten (Probe1 + Probe2, Probe3 + Probe4, ...) so zu summieren, dass: bar,247,4392,... foo,100,1725,... qaz,82,1382,... …
7 awk 




7
Wie drucke ich alle Zeilen einer Datei mit doppelten Werten in einer bestimmten Spalte?
Bei einer Datei wie dieser: 1,768,12,46576457,7898 1,123,435,134,146 2,345,6756856,12312,1311 5,234,567465,12341,1341 1,3245,4356345,2442,13 9,423,2342,121,463 9,989,342,121,1212 Ich möchte alle Zeilen (im Bash-Terminal) so auflisten, dass der Wert in Spalte 1 mindestens zweimal erscheint (in Spalte 1). Das Ergebnis sollte sein 1,768,12,46576457,7898 1,123,435,134,146 1,3245,4356345,2442,13 9,423,2342,121,463 9,989,342,121,1212



3
awk, wenn sowohl Trennzeichen als auch Anführungszeichen für ein Feld verwendet werden
Ich habe eine Datei im folgenden Format: field1|field2|field3 field1|"field2|field2"|field3 Beachten Sie, dass die zweite Zeile doppelte Anführungszeichen enthält. Die Zeichenfolge in doppelten Anführungszeichen gehört zu Feld 2. Wie wird dies mit awk extrahiert? Ich habe ohne Ergebnisse gegoogelt. Ich habe es auch ohne Glück versucht FS='"| "|^"|"$' '{print $2}'
7 awk  csv 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.