Polecenie „sed” w Wolnych Systemach Operacyjnych typu GNU / Linux jest to polecenie bardzo wszechstronne, bo z kolei jest uważany za edytor tekstu zorientowany na „przepływ” zamiast „interaktywny” jako typowy, ponieważ akceptuje plik lub standardowe wejście jako wejście, przetwarza każdy wiersz, a wynik jest wysyłany na standardowe wyjście. To jest do powiedzenia, SED (Stream EDitor) pozwala nam modyfikować zawartość różnych wierszy pliku na podstawie serii poleceń lub pliku poleceń.
Ogólnie polecenie „sed” jest używane jako filtr, ponieważ czyta każdy wiersz Twojego wpisu danych, a następnie wykonuje żądane działania, które zwykle są odczytywane, wyodrębniane, modyfikowane, pokazywane lub zapisywane. Chociaż jego moc jest taka dodatkowo pozwala nam w wygodny sposób usuwać linie, rekordy lub podmieniać ciągi znaków w liniach pliku.
Wprowadzenie do polecenia „sed”
Ya en otras publicaciones anteriores en DesdeLinux hemos hablado y mostrados ejemplos sobre el uso de dicho comando, takie jak: Jak usunąć określone linie z pliku ... y Z terminalem: używanie wyrażeń regularnych II: zamiany, więc tym razem od razu zobaczymy trochę bardziej zaawansowane i równie praktyczne przykłady jego użycia.
Zasadniczo polecenie «sed» ma następującą składnię:
sed comandos_sed archivo
gdzie „Command_sed” odpowiada jednej lub kilku specyfikacjom dotyczącym tego, co zrobić z wierszami, z których są odczytywane „archiwum”.
Szersze zastosowanie pozostawia nam następującą składnię:
sed [-ns] '[direccion] instruccion argumentos'
Gdzie:
Praktyczne przykłady
Lista plików / folderów w ścieżce
Przydatny wiersz poleceń, za pomocą którego można wyświetlić zawartość określonej ścieżki X, a następnie wykryć / zliczyć / przefiltrować wyszukiwany element i wskazać kolejną akcję do wykonania.
ls -l | awk '{ print $NF }' | sed 1d
przykład:
Ten inny wariant używający polecenia "sed" jest bardzo przydatny:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Utwórz sekwencję liczb
Wyświetl na ekranie lub zapisz w pliku utworzoną sekwencję liczb (lub dowolne inne dane wejściowe), ale w poziomie (liniowo), a nie w pionie, aby można było ją później odczytać dla innych procesów.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Ten sam przykład można zrobić, łącząc polecenie «pragnienie" z „Printf” jak pokazano niżej:
printf '%s ' {1..100}|sed 's/ $/\n/'
Usuń pliki z wykluczeniami
Przeszukiwanie ścieżki systemu plików w poszukiwaniu wzorców plików do wykluczenia, a następnie usuwanie pozostałej zawartości. Bardzo przydatny do precyzyjnego i starannego czyszczenia.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Utwórz wirtualny adres MAC
Ten krok może być przydatny w przypadku zadań związanych z bezpieczeństwem lub ochroną komputera podczas przeglądania niebezpiecznych witryn lub wykonywania zadań hakerskich.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Ten sam efekt można osiągnąć, używając polecenia „sed” w połączeniu z innymi poleceniami, jak pokazano poniżej:
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
przykład:
Tymczasowo zmień monit terminala
Może nam to pomóc w tymczasowym wstawieniu parametrów do naszego monitu, które mogą być dla nas przydatne podczas wykonywania specjalnych czynności. W tym przykładzie zmienimy tylko sposób wyświetlania monitu.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
Zarządzaj danymi wyjściowymi polecenia „ps”
Bardzo praktyczna kolejność poleceń umożliwiająca formatowanie wyjścia polecenia «ps», to znaczy tego, co jest uzyskiwane z Menedżera procesów terminala.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
przykład:
Można to zastosować do procesów zgodnie z procentem zajętej pamięci:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Te przykłady wierszy poleceń używających polecenia „sed” Mam nadzieję, że uznasz je za bardzo przydatne. I można ich używać bezpośrednio z konsoli lub pośrednio poprzez wstawienie ich do skryptu (zadanie automatyczne).
W następnym poście o skryptach powłoki omówimy inne polecenia.
Jeśli chcesz dowiedzieć się więcej o poleceniu „sed”, odwiedź ten link ”Samouczek i krótki przewodnik dla systemów Unix i Linux"Lub"Podstawowe zastosowanie»A jeśli chcesz dowiedzieć się więcej o skryptach powłoki na naszym własnym blogumożesz zapoznać się z innymi naszymi publikacjami na ten temat, klikając tutaj: Skrypty DesdeLinux.