Sed: A Shell parancsfájlok megtanulása a Sed Terminal parancs használatával

Sed: A Shell parancsfájlok megtanulása a Sed Terminal parancs használatával

Sed: A Shell parancsfájlok megtanulása a Sed Terminal parancs használatával

A "sed" parancs a GNU / Linux típusú ingyenes operációs rendszerekben ez egy nagyon sokoldalú parancs, mivel viszont Szövegszerkesztőnek tekintik, amely tipikusan az "interaktív" helyett "áramlásra" irányul, mivel elfogad egy fájlt vagy egy szabványos bemenetet bemenetként, majd minden sort feldolgoz, és az eredmény elküldik a standard kimenetre. Vagyis, A SED (Stream EDitor) lehetővé teszi számunkra, hogy a fájlok különböző sorainak tartalmát parancssorok vagy parancsfájlok alapján módosítsuk.

Általában a «sed» parancsot használják szűrőként, mivel elolvassa az adatbevitel minden sorát, majd végrehajtja a kért műveleteket, amelyeket általában olvasnak, kivonnak, módosítanak, megjelenítenek vagy elmentenek. Bár ereje olyan, hogy ezenkívül kényelmes módon lehetővé teszi számunkra a sorok törlését, rekordok törlését vagy a karakterláncok cseréjét egy fájl soraiban.

Bevezetés a „sed” parancsba

Már más korábbi publikációkban is DesdeLinux beszéltünk és mutattunk példákat az említett parancs használatáról, például: Konkrét sorok törlése egy fájlból ... y Terminállal: Regular Expressions II használata: Cserék, ezért ezúttal közvetlenül egy kicsit fejlettebb és ugyanolyan gyakorlati példákat fogunk látni.

A «sed» parancs alapvetően a következő szintaxissal rendelkezik:

sed comandos_sed archivo

ahol "Command_sed" egy vagy több specifikációnak felel meg arról, hogy mit kell kezdeni az olvasott sorokkal "archívum".

A szélesebb körű használat a következő szintaxist hagyja bennünk:

sed [-ns] '[direccion] instruccion argumentos'

ahol:

SED parancs használat formátum

Gyakorlati példák

Fájlok / mappák listázása egy útvonalon

Hasznos parancssor, amely felhasználható a feltüntetett X útvonal tartalmának felsorolására, majd a keresett elem észlelésére / számlálására / szűrésére és egy később végrehajtandó művelet megjelölésére.

ls -l | awk '{ print $NF }' | sed 1d

Példa:

1. példa: SED parancs - Shell parancsfájlok

Ez a másik variáció a "sed" paranccsal nagyon hasznos:

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

4. példa: SED parancs a Shell parancsfájlokhoz

Hozzon létre egy számsort

Jelenítse meg a képernyőn, vagy mentse fájlba a létrehozott numerikus szekvenciát (vagy bármely más bemenetet), de vízszintes (lineáris) és nem vertikális módon, amelyet később más folyamatok számára is le lehet olvasni.

seq 100|tr '\n' ' '|sed 's, $,\n,g'

2. példa: SED parancs a Shell parancsfájlokhoz

Ugyanez a példa a «szomjúság" a "Printf" az alábbiak szerint:

printf '%s ' {1..100}|sed 's/ $/\n/'

3. példa: SED parancs a Shell parancsfájlokhoz

A kizárt fájlok törlése

Szűrés a fájlrendszer útvonalán, a fájlok mintáinak keresése a kizárásra, majd a többi tartalom törlése. Nagyon hasznos a pontos és gondos tisztításhoz.

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

5. példa: SED parancs a Shell_Scriptinghez

Hozzon létre egy virtuális MAC-címet

Ez a lépés hasznos lehet számítógépes biztonsági vagy védelmi feladatokhoz veszélyes helyek böngészése vagy hackelési feladatok végrehajtása során.

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Ugyanez a hatás érhető el a "sed" parancs használatával más parancsokkal együtt, az alábbiak szerint:

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1

Példa:

7. példa: SED parancs a Shell parancsfájlokhoz

Ideiglenesen módosítsa a terminál parancsot

Ez segíthet abban, hogy ideiglenesen beillesszünk olyan paramétereket az üzenetünkbe, amelyek hasznosak lehetnek számunkra, miközben egy speciális tevékenységet végezünk. Ebben a példában csak a prompt megjelenítésének módját változtatjuk meg.

export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

8. példa SED parancs a Shell Scriptinghez

A "ps" parancs kimenetének kezelése

Nagyon praktikus parancsrend, amely lehetővé teszi a «ps» parancs kimenetének formázását, vagyis azt, amit a Terminal Process Manager-től kapnak.

sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"

Példa:

9. példa: SED parancs a Shell parancsfájlokhoz

Ez a folyamatokra az elfogyasztott memória százalékos aránya szerint alkalmazható:

sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"

Remélem, hogy ezek a "sed" parancsot használó parancssori példák nagyon hasznosak lesznek. És használják őket közvetlenül a konzolról vagy közvetett módon egy szkriptbe történő beillesztéssel (automatizált feladat).

A Shell Scripting következő bejegyzésében további parancsokat fogunk felfedezni.

Ha szeretne többet megtudni a "sed" parancsról, látogassa meg ezt a linket "Oktatóanyag és rövid útmutató Unix és Linux rendszerekhez"Vagy"Alapvető használat»És ha többet szeretne megtudni a Shell Scriptingről saját blogunkban, ide kattintva megnézheti a témával kapcsolatos egyéb kiadványainkat: Szkriptelés DesdeLinux.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.