"Sed" komutu GNU / Linux türü Özgür İşletim Sistemlerinde çok yönlü bir komuttur, çünkü sırayla Tipik olanlar olarak "etkileşimli" yerine "akışa" yönelik bir metin düzenleyici olarak kabul edilir, girdi olarak bir dosya veya standart girdi kabul ettiğinden, her satırı işler ve sonuç standart çıktıya gönderilir. Demek ki, SED (Akış Düzenleyici), bir dizi komuta veya bir komut dosyasına dayalı olarak bir dosyanın farklı satırlarının içeriğini değiştirmemize olanak tanır.
Genel olarak, "sed" komutu filtre olarak kullanılır, çünkü veri girişinizin her satırını okur ve daha sonra genellikle okuma, çıkarma, değiştirme ve gösterme veya kaydetme olan istenen eylemleri gerçekleştirir. Gücü öyle olmasına rağmen ek olarak rahat bir şekilde satırları, kayıtları silmemize veya bir dosyanın satırları içindeki karakter dizilerini değiştirmemize izin verir.
"Sed" komutuna giriş
Zaten daha önceki diğer yayınlarda DesdeLinux Bahsi geçen komutun kullanımı hakkında konuştuk ve örnekler gösterdik.gibi: Bir dosyadan belirli satırlar nasıl silinir ... y Terminal ile: Normal İfadeleri Kullanma II: Değiştirmeler, bu yüzden bu sefer doğrudan biraz daha gelişmiş ve onu kullanan pratik örnekler göreceğiz.
Temel olarak "sed" komutu aşağıdaki sözdizimine sahiptir:
sed comandos_sed archivo
nerede "Command_sed" okunan satırlarla ne yapılacağına dair bir veya daha fazla spesifikasyona karşılık gelir "Arşiv".
Daha kapsamlı bir kullanım, bize aşağıdaki sözdizimi bırakır:
sed [-ns] '[direccion] instruccion argumentos'
Nerede:
Pratik örnekler
Yoldaki Dosyaları / Klasörleri Listeleme
Belirtilen bir X yolunun içeriğini listelemek ve ardından aranan öğeyi algılamak / saymak / filtrelemek ve gerçekleştirilecek sonraki bir eylemi belirtmek için kullanılabilen kullanışlı komut satırı.
ls -l | awk '{ print $NF }' | sed 1d
Örnek:
"Sed" komutunu kullanan bu diğer değişken çok kullanışlıdır:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
Bir sayı dizisi oluşturun
Ekranda görüntüleyin veya sayısal bir sıra (veya başka bir girdi) oluşturulmuş ancak yatay (doğrusal) ve daha sonra diğer işlemler için okunabilecek dikey formda olmayan bir dosyaya kaydedin.
seq 100|tr '\n' ' '|sed 's, $,\n,g'
Aynı örnek, «komutunu birleştirerek yapılabilir.susuzluk" ile "Printf" Aşağıda gösterildiği gibi:
printf '%s ' {1..100}|sed 's/ $/\n/'
Hariç tutulan dosyaları sil
Dışlanacak dosya kalıplarını aramak ve ardından içeriğin geri kalanını silmek için Dosya Sistemi yolunda eleme. Hassas ve dikkatli temizlik için çok kullanışlıdır.
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
Sanal bir MAC adresi oluşturun
Bu adım, tehlikeli sitelerde gezinirken veya bilgisayar korsanlığı görevlerini gerçekleştirirken bilgisayar güvenliği veya koruma görevleri için yararlı olabilir.
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
Aynı etki, aşağıda gösterildiği gibi diğer komutlarla birlikte "sed" komutunun kullanılmasıyla da elde edilebilir:
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
Örnek:
Terminal İstemini geçici olarak değiştirin
Bu, özel bir etkinlik gerçekleştirirken bizim için yararlı olabilecek parametreleri istemimize geçici olarak eklememize yardımcı olabilir. Bu örnekte, yalnızca bilgi isteminin görüntülenme şeklini değiştireceğiz.
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
"Ps" Komutunun çıktısını yönetin
"Ps" komutunun çıktısının, yani Terminal İşlem Yöneticisinden elde edilenin biçimlendirilmesine izin vermek için çok pratik komut sırası.
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
Örnek:
Bu, tüketilen bellek yüzdesine göre işlemler için uygulanabilir:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
Umarım "sed" komutunu kullanan bu komut satırı örnekleri çok yararlı olur. Ve doğrudan konsoldan veya bir komut dosyasına eklenerek dolaylı olarak kullanılmaya hizmet ederler (otomatik görev).
Shell Scripting ile ilgili bir sonraki yazıda diğer komutları inceleyeceğiz.
"Sed" komutu hakkında biraz daha fazla bilgi edinmek isterseniz bu bağlantıyı ziyaret edin "Unix ve Linux için Eğitim ve Kısa Kılavuz"Veya"Temel kullanım»Ve kendi Blogumuzda Kabuk Komut Dosyası hakkında daha fazla bilgi edinmek istiyorsanızkonuyla ilgili diğer yayınlarımıza buraya tıklayarak göz atabilirsiniz: Komut dosyası oluşturma DesdeLinux.