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:
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:
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
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'
Ugyanez a példa a «szomjúság" a "Printf" az alábbiak szerint:
printf '%s ' {1..100}|sed 's/ $/\n/'
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
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:
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' )\\> "
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:
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.