awk(1): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
 
Rad 187: Rad 187:
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på  
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på  
https://www.linux.se/kontaka-linux-se/
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://datorhjalp.se/web/datorhjalp-hemma/ Datorhjälp hemma] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.
<BR><BR>Tack till [https://digfix.se/ Digital Fixare Stockholm] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.


[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual]]
[[Kategori:Linuxmanual]]

Nuvarande version från 31 januari 2026 kl. 11.43

awk(1)

NAMN

awk – mönsterstyrt språk för att söka och bearbeta text

SYNOPS

awk [ -F fs ] [ -v var=val ] [ -f programfil ] [ 'program' ] [ fil ... ]

BESKRIVNING

awk är ett språk som används för att söka igenom och bearbeta textfiler, ofta i form av kolumnbaserade data. awk läser in en fil rad för rad, delar varje rad i fält och matchar rader mot angivna mönster för att därefter utföra angivna åtgärder.

Standardformatet är:

pattern { action }

Där båda delarna är valfria: ett tomt mönster matchar alla rader, en tom åtgärd skriver ut raden.

Varje rad delas automatiskt i fält, där varje fält refereras med $1, $2, ... och hela raden som $0.

Vanliga användningar inkluderar:

  • extrahera kolumner från text
  • aggregera eller summera värden
  • skapa rapporter eller statistik
  • modifiera text i strömmar eller filer

FLAGGOR

-F fs

 Anger fältavgränsare (field separator). Standard är mellanslag och tab.

-f programfil

 Läser AWK-programmet från en fil istället för från kommandoraden.

-v var=val

 Tilldelar ett värde till en variabel före bearbetning börjar.

program

 Anger själva AWK-programmet som ett strängargument.

fil ...

 Lista över filer som ska bearbetas. Om ingen anges används standard input.

EXEMPEL

Skriv ut andra kolumnen i en fil:

awk '{ print $2 }' fil.txt

Summera värden i tredje kolumnen:

awk '{ sum += $3 } END { print sum }' fil.txt

Använd ett kommatecken som fältavgränsare:

awk -F, '{ print $1, $3 }' fil.csv

KOMMANDORADSFLAGGOR

Fältavgränsning & variabel tilldelning

  • -F fs / --field-separator=fs – sätt fältavgränsare (FS)
  • -v var=val / --assign=var=val – fördefinierar variabel före tolkningsstart

Filinmatning av skript

  • -f fil / --file=fil – läs AWK‑kod från fil istället för kommandoraden
  • --source=kod – använd inline‑kod; kan kombineras med -f

Kompatibilitet & optimering

  • -W compat/--compat eller --traditional – strikt kompatibel med äldre awk
  • --posix – strikt POSIX‑läge (begränsade funktioner)
  • -O / --optimize – konstantviktsoptimering vid kompilering

Profileringsdumpning

  • -W profile[=fil] / --profile[=fil] – genererar körningsprofil i fil (standard `awkprof.out`)
  • pgawk – profileringsversion som även räknar statementsvykörningar

Debug & felsökning

  • -W lint[=value] / --lint[=value] – varna för osäkra konstruktioner (fatal/invalida med value “fatal” eller “invalid”)
  • -W dump-variables[=fil] – dumpa globala variabler och deras värden

Internationellt stöd & hjälpfunktioner

  • -W gen-po / --gen-po – generera PO‑fil för lokalisering
  • bindtextdomain(), dcgettext(), dcngettext() – dynamisk översättning

Versionsinfo och hjälp

  • --version – skriv ut gawk‑version och avsluta
  • -W help / --help – skriv ut sammanfattning och avsluta
  • -W copyright / --copyleft – GNU‑upphovsrättstext

INBYGGDA FUNKTIONER

Numeriska funktioner

sin(x), cos(x), atan2(y,x), exp(x), log(x), sqrt(x), int(x),
rand(), srand([x])

Strängfunktioner

length([s]), substr(s, i [, n]), index(s, t), match(s, r),
split(s, a [, fs]), sub(r, t [, s]), gsub(r, t [, s]),
tolower(s), toupper(s), sprintf(fmt, vals)

Tidsfunktioner (GNU)

systime(), strftime([format [, ts]]), mktime("YYYY MM DD HH MM SS [DST]")

ARRAYER

AWK har associativa arrayer med strängindex. Exempel:

a["namn"] = 42
print a["namn"]

För loop:

for (i in a) print i, a[i]

Radera nyckel:

delete a["namn"]

Multidimensionellt:

count[x "," y]++

eller med GNU:

@count[x][y]++

REGEX

  • `~`, `!~`, `match()`, `sub()`, `gsub()`
  • Variabelmatchning:
r = "^[0-9]+$"
if ($1 ~ r) ...

INTERNATIONELLISERING

bindtextdomain(), dcgettext(), dcngettext()

FELHANTERING

  • `-W lint`, `-W profile`, `print "DEBUG:", variabel`

AVANCERADE EXEMPEL

CSV till HTML:

BEGIN { print "<table>" }
{ print "<tr>"; for(i=1;i<=NF;i++) printf "<td>%s</td>",$i; print "</tr>" }
END { print "</table>" }

KOMPATIBILITET

POSIX vs GNU-funktioner. Undvik GNU-specifikt vid portabilitet.

SE ÄVEN

gawk(1), sed(1), grep(1), bash(1), xargs(1)

FÖRFATTARE

Aho, Kernighan, Weinberger (AWK); Robbins (GNU awk)

COLOPHON

Denna svenska översättning är baserad på den engelska manualsidan för `awk(1)` tillgänglig från https://linux.die.net/man/1/awk och officiella GNU `gawk`-källor. Översatt av Martin.

Sidslut

Orginalhemsidan på Engelska https://linux.die.net/man/1/awk

Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Digital Fixare Stockholm som har sponsrat Linux.se med webbhotell.