Hvordan bruke basgs -kommandoene Bash XArgs

Hvordan bruke basgs -kommandoene Bash XArgs

“Xargs er en bash -kommando som tillater utførelse av flere kommandoer på samme linje. Enten kommandoene tar parametere eller argumenter som input, kan de kjøre i samme linje når de kombineres med Xargs. Med Xargs kan du bygge og utføre flere kommandoer gjennom standardinngang.”

For å hjelpe deg med å forstå Xargs og hvordan du kan bruke den, vil denne artikkelen gi flere eksempler på å bruke XArgs -kommandoen. Ta en titt!

Hvordan du bruker xargs -kommandoen

Hvordan du bruker Xargs -kommandoen avhenger av hva du vil oppnå. Hvis du bruker XArgs uten innspill, vil det ekko alt du skriver på terminalen når du trykker på Ctrl + d

Håndtering av filer og kataloger ved hjelp av XArgs

Hvis du vil finne alle filer med en gitt utvidelse, kan du bruke XArgs. La oss ha et eksempel på å bruke LS med XArgs for tekstfiler.

$ Finn . -Navn '*.txt '-Type F | Xargs ls

I kommandoen ovenfor bruker vi finne kommando for å søke etter filer i den gjeldende katalogen som har en .txt -forlengelse.

Her er utdataene

Hvis du vil slette alle filene vi fant ved hjelp av kommandoen over, kan du bruke kommandoen nedenfor.

$ Finn . -Navn '*.txt '-Type F | xargs rm -f

De -t flagget er for ordre.

Anta at du ønsket å lage flere kataloger der du legger til inngangen fra standardinngangen. Vi kunne kombinere mkdir med ekko, Som i eksemplet nedenfor.

$ ekko 'Linux1 Tech2 Dir3 Dir2' | Xargs Mkdir

Hvis du ønsket å fjerne alle kataloger i den gjeldende katalogen, kan du bruke XArgs, som vist nedenfor.

$ Finn . -Type D | xargs rm -r

XArgs Reading Input fra en fil

Bruker -en Flagg, kan du instruere Xargs til å lese elementer fra en fil, som i saken nedenfor.

Med det samme eksemplet kan vi demonstrere hvordan vi kan kombinere flere kommandoer ved hjelp av XArgs. For det, bruk -Jeg flagg.

For eksempel kan vi bruke kommandoen nedenfor for å lese innholdet i en fil og opprette en katalog ved hjelp av hver streng i filen.

$ katt 1.txt | xargs -i % mkdir %

Du kan ta kommandoen videre for å gjenspeile filens innhold mens du oppretter katalogen ved å legge til ekkokommando, som vist under.

$ katt 1.txt | xargs -i % sh -c 'ekko %; mkdir %'

Bruker xargs med grep

GREP -kommandoen brukes til matchende mønstre, og når du vil søke etter en gitt streng i forskjellige filer, kan du bruke XArgs til å kombinere finne med grep, hvor produksjonen av finne vil bli konvertert til inngangen som skal brukes av grep.

Her er et eksempel der vi finner alle tekstfiler som inneholder strengen “Linuxhint.”

$ Finn . -Navn '*.txt '| Xargs grep 'Linuxhint'

Begrensende utgang per linje

Anta at du vil lese innholdet i en fil. Du kan begrense antall utganger for hver linje ved hjelp av -n alternativ.

La oss ha et eksempel på utskriftstall i et gitt område ved å bruke seq kommando og begrense utgangen per linje til 4

$ SEQ 1 30 | Xargs -n 4

Spesifisere avgrenseren

Som standard antar Xargs et tomt rom som avgrenseren. Imidlertid, hvis du trenger å bruke en annen avgrenser, må du bruke -d Kommando etterfulgt av avgrenseren.

Her er et eksempel som bruker en tykktarm som avgrenser når du jobber med en fil for å lese innholdet og lage kataloger ved hjelp av strengene i filen.

Her er innholdet i filen vår.

La oss nå kjøre kommandoen nedenfor.

$ kattnavn.txt | xargs -d: | Xargs -t Mkdir

Utgangen ville være:

NULL -avgrenseren

Hvis vi prøvde å bruke Xargs med filer med tomt plass i navnene, ville det gi feil resultater da Xargs bruker tomt plass som avgrensning. I et slikt tilfelle må vi bruke -0 flagg, som signaliserer xargs å bruke nullavgrensning. Vi trenger også -print0 flagg, som brukes ved å finne for å indikere en null-separert liste.

Anta for eksempel at vi hadde bildefilene nedenfor.

Hvis vi prøvde å slette alle filene ved hjelp av kommandoen nedenfor, ville XArgs bare skrive ut bildefilene uten plass i navnet deres, som vist nedenfor.

$ Finn . -Navn '*.png '-Type f | xargs rm -f

For å overvinne dette, må vi bruke -0 -flagget og -print0.

$ Finn . -Navn '*.png '-Type F -print0 | xargs -0 rm -f

Vi kan bekrefte at vi har slettet alle filene med hell.

Konklusjon

Denne guiden har dekket Bash Xargs-kommandoen grundig, og gir eksempler på hvordan du bruker den for å oppnå forskjellige aspekter. Når du refererer til de presenterte eksemplene, kan du implementere XArgs på slutten for å utføre forskjellige oppgaver. Sjekk også mannsiden for Xargs for å få flere bruksområder.