Linux, kullanıcı, nesne veya destek yönetimi olsun, her birinin belirli görevlerin davranışında önemli bir rol oynadığı, her komutun Linux'ta katılımının olduğu ve bu komutlardan biri de bahsedeceğimiz Sed olan komutlarla dolu bir sistemdir. Ayrıntılarda Solvetic'te.
Linux'ta sed komutu nedirsed komutu, kelimenin tam anlamıyla, bir dosyadan veya uygunsa bir boru hattından girdi akışındaki temel işlevlerle metin üzerindeki çalışmaları değiştirmek için kullanabileceğimiz bir akış düzenleyicisidir.
Diğer metin editörlerinden farklı olarak, sed ile seçili içeriğin üzerinden geçerken bir boru hattındaki metni filtrelemek mümkündür.
AvantajLinux'ta sed kullanmanın avantajları şunlardır:
- metin seçebiliriz
- Metni değiştirebiliriz
- Metne satır ekleme
- Metinden satırları kaldırabiliriz
- Orijinal bir dosyayı değiştirmenize veya korumanıza izin verir
sed kullanımına ilişkin genel sözdizimi aşağıdaki gibidir:
sed SEÇENEKLER… [SCRIPT] [INPUT_FILE…]Bu komutu Linux'ta kullanmanın bazı yollarını öğreneceğiz.
1. Linux'ta SED komutu nasıl kullanılır
sed'in temel kullanımıBu örnekte, sed komutunun girilen metnin bir kısmını nasıl değiştirebileceğini görmek için "echo" kullanacağız, şunu giriyoruz:
yankı solvitik | sed 's / vitic / vetic /'Bu durumda sed'e "vitic" kelimesini "vetic" ile değiştirmesini söylüyoruz, Enter'a basıldığında sonuç şöyle olacak:
BÜYÜT
Değişimin otomatik olduğunu görüyoruz.
2. SED Linux komutuyla metin seçme
Aşama 1
Bu durumda masaüstünde barındırılan bir metin dosyamız olacaktır:
BÜYÜT
Şimdi aşağıdaki satırı kullanacağız:
daha az Solvetic.txtAdım 2
Enter tuşuna bastığınızda sonuç şu olacaktır:
BÜYÜT
sed ile dosyanın bazı satırlarını seçmek mümkündür, bunun için seçilecek aralığın ilk ve son satırlarını belirtmeliyiz, örneğin, iki ila yedi arasındaki satırları çıkarmak istiyorsak yürütür:
sed -n '2,7p' Solvetic.txtAşama 3
Aşağıdakileri göreceğiz:
BÜYÜT
Atanacak aralıklardaki virgülü aklımızda tutmalıyız (2,7), p parametresi bunun "eşleşen satırları yazdır" anlamına geldiğini belirtir, bununla birlikte sed komutu o aralığın tüm satırlarını yazdırır ve -n (sessiz) ) seçeneği, o aralığa uymayan metinleri görüntülememeye özen gösterir.
4. Adım
Çoklu seçim yapmak için -e (ifade) parametresini kullanabiliriz, örneğin:
sed -n -e '1,2p' -e '5,6p' Solvetic.txt
BÜYÜT
Adım 5
sed ile başlangıç çizgisini seçmek mümkündür, daha sonra dosyada hangilerinin geçilmesi gerektiğini belirtiriz ve alternatif satırları yazdırmak için örneğin şunu gireriz:
sed -n '1 ~ 3p' Solvetic.txtBu durumda ilk sayı başlangıç çizgisini belirtir ve ikinci sayı sed'e başlangıç çizgisinden sonra hangi satırların görüntüleneceğini söyler:
BÜYÜT
6. Adım
sed'in başka bir kullanımı, eşleşen metin desenlerinin bulunduğu satırları seçme yeteneğidir, bu, satır numarasının nereden geldiğini bilmiyorsak aşağıdakileri uygulayabiliriz:
sed -n '/ Çalıştır / p' Solvetic.txt
BÜYÜT
O terimle başlayan satırları göreceğiz.
3. SED Linux ile değiştirmeler nasıl oluşturulur
Aşama 1
Temel kısımda sed kullanarak metnin nasıl değiştirileceğini gördük, orada -s (ikame) parametresini kullandık. Ardından, ilk dize arama düzenini gösterir ve ikincisi, değiştirileceği metni belirtir.
sed -n 's / görevler / eylemler / p' Solvetic.txtBu örnekte "görevleri" "eylemler" ile değiştiriyoruz:
BÜYÜT
Adım 2
p sed parametresi ile ilk eşleşmeden sonra otomatik olarak durur, genel bir arama yapmak ve genel olarak değişikliği yapmak için "g" eklemeliyiz:
sed -n 'ler / görevler / eylemler / gp' Solvetic.txtBüyük/küçük harfe duyarsız olmasını istiyorsak, "i" ekleyeceğiz:
sed -n 'ler / görevler / eylemler / gpi' Solvetic.txtAşama 3
Dosyanın yalnızca belirli bölümleri için değişiklik kısıtlamaları oluşturmak mümkündür, öncelikle analiz edilecek satırları listeliyoruz:
sed -n '1,3p' Solvetic.txt
BÜYÜT
4. Adım
Şunu görelim, iki boşluğun nerede olduğunu bulabilir ve bir tane ile değiştirebiliriz:
sed -n '1.3 s / * / / gp' Solvetic.txtYıldız işareti (*), önceden seçilen karakterin sıfırını veya daha fazlasını temsil eder.
Adım 5
Aşağıdaki komutla arama düzenini tek bir boşluğa indirgeyebilirsiniz:
sed -n '1.3 s / * / / gp' Solvetic.txtSonuçlardaki farkı görüyoruz:
BÜYÜT
İkinci durumda, yıldız işareti önceki karakterin sıfır veya daha fazlasıyla eşleşir, bu, komutu uygulayarak boşluk olmayan her karakterin "sıfır boşluk" gibi görünmesini sağlar.
6. Adım
Aynı anda iki veya daha fazla oyuncu değişikliği yapmak için şunları uygularız:
sed -n -e 'ler / yürütüldü / uygulandı / gip' -e 'ler / görevler / eylemler / gip' Solvetic.txt
BÜYÜT
4. Linux'ta SED değiştirme seçenekleri
Ayrıca sistemden dosya adlarını çıkarmak için sed kullanabiliriz, bu durumda her nesnenin numaralandırılabilen (en fazla dokuz öğeye kadar) bir arama modeliyle (alt ifadeler) eşleşmesi gerektiğini aklımızda tutmalıyız.
Aşama 1
Bu sayılar daha sonra belirli alt ifadelere atıfta bulunmak için kullanılabilir.
Alt ifade parantez [()] içine alınmalı ve normal bir karakter olarak algılanmamaları için parantezlerin önüne bir ters eğik çizgi (\) gelmelidir, örneğin:
sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd
BÜYÜT
Bu komutta kullanılan değişkenler
- sed 's /: sed komutunu ve değiştirme ifadesinin başlangıcını belirtir.
- \ (: önüne ters eğik çizgi gelecek şekilde alt ifadeyi içine alın
- [^:] *: parantez içinde bir grup içeren arama teriminin ilk alt ifadesidir, şapka işareti (^) bir grupta kullanıldığında "hayır" anlamına gelir, yani iki nokta üst üste olmayan herhangi bir karakter
- \): Ters eğik çizgili kapanış parantezi [)]
- *: "herhangi bir karakter ve bunların herhangi bir sayısını" gösteren ikinci arama alt ifadesidir.
- / \ 1: önünde ters eğik çizgi (\) bulunan 1 sayısını içeren ve metnin ilk alt ifadeyle eşleştiğini gösteren ifadenin değiştirme kısmıdır.
- / ': sed komutunu sonlandır
Adım 2
/etc/passwd dosyasının her satırı iki nokta üst üste ile biten kullanıcı adıyla başladığı için, önceki komutla iki nokta üst üste içermeyen herhangi bir karakter dizesini aradık. Kullanıcı adını izole ederek bu değeri aşağıdaki komutla değiştirebiliriz:
sed 's / \ ([^:] * \) \ (. * \) / \ 2 /' / etc / passwd
BÜYÜT
Aşama 3
Aşağıdaki komutla sadece kullanıcı adlarını görüntüleyebiliriz:
sed 's /:.*// "/ etc / passwdsed ile başka bir seçenek de bir dosyadaki metni değiştirmek için c (kes - kes) parametresini kullanmaktır, örneğin:
sed '/ Linux / c Linux işletim sistemi' Solvetic.txt
BÜYÜT
5. Linux'ta SED ile satır ve metin ekleyin
Aşama 1
sed ile kullanılacak başka bir görev, bir dosyaya yeni satırlar ve metin eklemektir, bu durumda aşağıdaki verilere sahibiz:
BÜYÜT
Adım 2
Hangisinin altına ekleneceğini belirten yeni bir satır ekleyebiliriz:
sed '/ Ub / a -> Eklendi!' Solvetic.txt
BÜYÜT
Aşama 3
Eşleşmenin üzerine yeni bir satır eklemek için Ekle (i) komutunu kullanmak da mümkündür:
sed '/ Wi / i -> Eklendi!' Solvetic.txt
BÜYÜT
4. Adım
Dosyadaki eşleşen bir satıra yeni metin eklemek için ve işareti (&) kullanabiliriz, şunu yürütürüz:
sed 's /.*/--> Eklendi & /' Solvetic.txt
BÜYÜT
6. SED Linux ile bir satır nasıl silinir
Bu durumda, örneğin yürüttüğümüz ikinci satırı silmek için d (sil) parametresini kullanmalıyız:
sed '2d' Solvetic.txt
BÜYÜT
Gerekirse bir aralığı kaldırabiliriz:
sed '1,4d' Solvetic.txtBir aralığın dışındaki satırları kaldırmak için ünlem işareti (!) kullanmalıyız.
sed '2,4! d' Solvetic.txt
7. Linux'ta SED ile değişiklikler nasıl kaydedilir
Aşama 1
Yapılan değişiklikleri uygulamak için, sed'in değişiklikleri orijinal dosyaya yazabilmesi için Yerinde seçeneğini (-i) kullanmak mümkündür, ancak daha fazla güvenlik için aşağıdaki gibi bir yedekleme uzantısı ekleyebiliriz (yedekledik Wi kelimesini içeren satırlar):
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txtİçeriği listeliyoruz:
kedi Solvetic.txt.bak
BÜYÜT
Adım 2
Çıktıyı aynı sonuçlarla yeni bir dosyaya yönlendirmek mümkündür:
sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt
BÜYÜT
sed ile, her bir kullanım seçeneğini gördüğümüz için Linux'ta dosyalarla tamamen eksiksiz bir şekilde çalışabiliriz.