Linux-utvecklare följer filosofin att skapa små program som gör en uppgift och gör det bra. Ta Linux-textbehandlingsverktyg som ett exempel, de är lätta och har modulär funktionalitet. Även om dessa textmanipuleringsverktyg skiljer sig åt i komplexitet och funktionalitet, kommer de väl till pass i en miljö där det grafiska användargränssnittet inte är tillgängligt.

Artikeln täcker de bästa Linux-verktygen för att läsa filer och använda reguljära uttryck för att utföra operationer på den valda texten. Den täcker också deras mest grundläggande funktionalitet och exempel för bättre förståelse.

1. grep

grep är ett Linux-textmanipuleringsverktyg som söker efter en sträng av tecken eller mönster som kallas reguljära uttryck i en fil eller text. grep-verktyget tillhör familjen av verktyg som inkluderar egrep, fgrep och grep, bland vilka fgrep är det snabbaste av alla, medan grep är det enklaste.

Den allmänna syntaxen för att använda grep är följande:

grep -options sträng filnamn

Till exempel för att söka efter ordet "root" i filen /etc/passwd:

instagram viewer
grep root /etc/passwd

Några vanliga kommandoradsexempel för att komma igång är:

alternativ Exempel Beskrivning
-c grep -c ./bashrc Räkna antalet rader där strängen finns
-jag grep -i ./bashrc Utför en skiftlägesokänslig sökning efter den angivna strängen
-o grep -o fil Skriver endast ut den matchade strängen
-l grep -l "passwd" Skriver ut filnamn i den aktuella katalogen som matchar mönstret
-n grep -n fil Skriver ut radnumret längs raden som innehåller den angivna strängen
sträng1|sträng2 grep "string1|string2" fil Hitta och skriv ut flera strängar från en fil

På samma sätt kan du använda ^ metatecken med kommandot grep för att visa alla matchande strängar som börjar med vissa tecken.

Till exempel skickar följande kommando kommandot env som en indata till grep och visar variabler som börjar med "HO":

env | grep ^HO

Relaterad: Praktiska exempel på Linux Grep-kommandon

2. awk

awk är ett kraftfullt skriptspråk och ett kommandoradsverktyg för textmanipulering som kan utföra rad för rad skanningar och jämföra rader med mönster. Den grundläggande syntaxen för kommandot awk är en åtgärd som definieras mellan ett enstaka citattecken och klammerparenteser följt av filnamnet.

awk '{action}' filnamn
awk '{mönster; action}' filnamn

Verktyget söker igenom filen med hjälp av reguljära uttryck och utför den funktion som definieras i handlingsparametern. awk kör skriptet på varje rad om du inte anger ett mönster, som visas nedan:

awk '{print $1}' awk_examples.txt

...var $1 visar det första fältet i awk_examples.txt fil.

Följande kommando utför utskriftsfunktionen på det givna mönstret genom att ersätta det andra fältet "Värld"med"Alice," och visar hela raden ($0):

echo "Hello World" | awk '{$2="Alice"; skriv ut $0}'

Produktion:

Hej Alice

På samma sätt kan du använda funktionen skriv ut $0 från kommandot ovan för att emulera grep funktionalitet.

awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh

3. sortera

sort är ett annat Linux-kommandoradsverktyg som hjälper dig att visa innehållet i den angivna textfilen i ett sorterat format. Till exempel kan du skicka utdata från kommandot awk som en indata till sorteringsverktyget enligt följande:

awk '{print $1}' awk_examples.txt | sortera > sort_text.txt
cat sort_text.txt

Produktion:

Relaterad: Hur man sorterar textfiler i Linux med hjälp av sortering

4. sed

sed eller stream editor tar indata som en ström av tecken och utför filtrering och textomvandlingar (ta bort, ersätt och ersätt) på den angivna texten.

Du kan använda det i ett skript och redigera filer icke-interaktivt. Därför är det mest grundläggande syftet med verktyget att ersätta sträng/tecken. Den allmänna syntaxen är:

sed 's/string/substitution/option'-fil

Skapa en fil med slumpmässiga meningar för att öva och förstå hur det här verktyget fungerar.

Låt oss ersätta förekomsten av ordet "två" på varje rad i filen med "2" använda -g flagga för global ersättning, enligt följande:

sed 's/two/2/g' sed_examples.txt > sed_examples2.txt

Använd på samma sätt -d flagga för att ta bort en specifik rad från filen:

sed '2d' sed_examples.txt

Du kan också ersätta strängen genom att ange ett radnummer (4 s/två/2/s) och endast skriva ut den ersatta raden enligt följande:

sed -n '4 s/två/2/p' sed_examples2.txt

De -n flaggan i kommandot ovan inaktiverar automatisk utskrift av ingångsströmmen till utgången. Du kan använda det här alternativet till din fördel för att ersätta grep-verktygsfunktionen med sed.

Du kan till exempel ändra kommandot ovan genom att bara inkludera ett regexmönster /two/p sådan att -s flaggan kommer endast att skriva ut raderna till standardutgångsströmmen.

sed -n '/två/p' sed_examples2.txt

Relaterad: Dessa 10 sed exempel kommer att göra dig till en Linux Power User

5. skära

Cut är ett annat kommandoradsverktyg som skär ut/extraherar delar av text från en rad eller fil. Den klipper ut texten baserat på ett angivet fält, tecken eller byteposition och skickar resultatet till standardutdata.

Verktyget tar in följande syntax:

skära  fil

Använd -b alternativ för att klippa avsnitt eller innehåll med en specificerad byte eller ett intervall av byte:

cut -b 1 cut_examples.txt

Använd -c flagga för att extrahera text genom att ange positionerna för tecken:

cut -c 1,3,5 cut_examples.txt

Slutligen kan du också extrahera text genom att ange fält med -f alternativ och -d för mellanslag eller fältavgränsare:

cut -d " " -f 1 cut_examples.txt

Här är listan över intervall med exempel och beskrivningar som du kan använda med karaktären -c och byte -b alternativ:

Räckvidd Exempel Beskrivning
n- cut -c 7- filnamn Extrahera tecken från n: te heltal till slutet av raden
n-m cut -b 7-15 filnamn Extraherar från heltal n-m för varje rad från indatafilen
-m cut -c -7 filnamn Extraherar rader från m till slutet av raden

Observera att du inte kan definiera intervallen för textextraktion genom att använda fältet -f alternativ.

Manipulera text med Linux-kommandon

Linux erbjuder många program och verktyg för att hantera och arbeta runt filer eller text. Att lära sig dem alla kanske inte krävs eftersom du enkelt kan fylla tomrummet med en annan när du väl har ett bra grepp om en, som att använda sed som grep eller awk som grep, men detta kan inte vara sant för alla verktyg.

Dessutom har Linux-kommandon en brant inlärningskurva, men när du väl utvecklar färdigheten kan de visa sig vara mycket användbara och effektiva i livet för alla Linux-användare, särskilt en systemadministratör.

8 bästa terminalappar för förbättrad Linux-produktivitet

Trött på den gamla och tråkiga terminalappen som kommer förinstallerad på Linux? Kolla in dessa åtta terminalappar som förbättrar ditt arbetsflöde.

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • Linux
  • Linux-kommandon
Om författaren
Rumaisa Niazi (7 publicerade artiklar)

Rumaisa är frilansskribent på MUO. Hon har burit många hattar, från en matematiker till en informationssäkerhetsentusiast, och arbetar nu som SOC-analytiker. Hennes intressen inkluderar att läsa och skriva om ny teknik, Linux-distributioner och allt kring informationssäkerhet.

Mer från Rumaisa Niazi

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera