50 `but` Komut Örnekleri

50 Sed Command Examples



`sed`, GNU/Linux'un kullanışlı bir metin işleme özelliğidir. 'sed'in tam biçimi Akış Düzenleyici'dir. Birçok basit ve karmaşık metin işleme görevi, `sed` komutu kullanılarak çok kolay bir şekilde yapılabilir. Bir metindeki veya dosyadaki herhangi bir belirli dize, `sed komutuyla normal ifade kullanılarak aranabilir, değiştirilebilir ve silinebilir. Ancak bu komutlar her türlü değişikliği geçici olarak gerçekleştirir ve orijinal dosya içeriği varsayılan olarak değişmez. Kullanıcı, gerektiğinde değiştirilen içeriği başka bir dosyada saklayabilir. 'sed' komutunun temel kullanımları bu öğreticide 50 benzersiz örnek kullanılarak açıklanmıştır. Bu öğreticiye başlamadan önce, aşağıdaki komutu çalıştırarak işletim sisteminizde kurulu 'sed' sürümünü kontrol etmelisiniz. Öğretici, GNU sed'e dayalı olarak tasarlanmıştır. Bu nedenle, bu eğitimde gösterilen örnekleri uygulamak için 'sed'in bu sürümü gerekecektir.

$sed --versiyon

Aşağıdaki çıktı, sistemde 4.4 sürümünün GNU Sed'in kurulu olduğunu göstermektedir.









Sözdizimi:



sed [seçenekler]...[senaryo] [dosya]

'sed' komutuyla dosya adı sağlanmazsa, komut dosyası standart girdi verileri üzerinde çalışacaktır. `sed` betiği herhangi bir seçenek olmadan çalıştırılabilir.





İçerik :

  1. 'sed' kullanarak temel metin değiştirme
  2. 'g' seçeneğini kullanarak bir dosyanın belirli bir satırındaki bir metnin tüm örneklerini değiştirin
  3. Her satırda yalnızca bir eşleşmenin ikinci oluşumunu değiştir
  4. Her satırda yalnızca bir eşleşmenin son tekrarını değiştir
  5. Bir dosyadaki ilk eşleşmeyi yeni metinle değiştirin
  6. Bir dosyadaki son eşleşmeyi yeni metinle değiştirin
  7. Dosya yollarının aranmasını ve değiştirilmesini yönetmek için değiştirme komutlarında ters eğik çizgiden kaçma
  8. Tüm dosyaların tam yolunu yalnızca dizin yok dosya adıyla değiştirin
  9. Metni değiştirin, ancak yalnızca dizede başka bir metin bulunursa
  10. Metni değiştirin, ancak yalnızca dizede başka bir metin bulunmazsa
  11. ' kullanarak eşleşen desenden sonra dize ekleyin 1 '
  12. Eşleşen satırları sil
  13. Eşleşen satırı ve eşleşen satırdan sonra 2 satırı sil
  14. Metin satırının sonundaki tüm boşlukları sil
  15. Satırda iki kez eşleşen tüm satırları sil
  16. Tek boşluk içeren tüm satırları silin
  17. Yazdırılamayan tüm karakterleri sil
  18. Satırda bir eşleşme varsa, satırın sonuna bir şey ekleyin
  19. Maçtan önce satır ekleme satırında bir eşleşme varsa
  20. Maçtan sonra satır ekleme satırında bir eşleşme varsa
  21. Bir eşleşme yoksa satırın sonuna bir şey ekleyin
  22. Eşleşme yoksa satırı silin
  23. Metinden sonra bir boşluk ekledikten sonra eşleşen metni çoğalt
  24. Dize listesinden birini yeni dizeyle değiştirin
  25. Eşleşen bir dizeyi yeni satırlar içeren bir dizeyle değiştirin
  26. Yeni satırları dosyadan kaldırın ve her satırın sonuna virgül ekleyin
  27. Metni birden çok satıra bölmek için virgülleri kaldırın ve yeni satırlar ekleyin
  28. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve satırı silin
  29. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve yeni metinle değiştirin
  30. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve aynı metnin tamamını büyük harfle değiştirin
  31. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve aynı metnin tüm küçük harfleriyle değiştirin
  32. Metindeki tüm büyük harfli karakterleri küçük harfli karakterlerle değiştirin
  33. Satırdaki sayıyı arayın ve sayıdan sonra para birimi simgesini ekleyin
  34. 3 basamaktan fazla olan sayılara virgül ekleyin
  35. Sekme karakterlerini 4 boşluk karakteriyle değiştirin
  36. 4 ardışık boşluk karakterini bir sekme karakteriyle değiştirin
  37. Tüm satırları ilk 80 karaktere kadar kısalt
  38. Bir dize normal ifadesi arayın ve ondan sonra bazı standart metinler ekleyin
  39. Bir dize normal ifadesi ve ondan sonra bulunan dizenin ikinci bir kopyasını arayın
  40. Bir dosyadan çok satırlı `sed` komut dosyalarını çalıştırma
  41. Çok satırlı bir deseni eşleştirin ve yeni çok satırlı metinle değiştirin
  42. Bir kalıpla eşleşen iki kelimenin sırasını değiştirin
  43. Komut satırından birden çok sed komutu kullanın
  44. sed'i diğer komutlarla birleştir
  45. Dosyaya boş bir satır ekle
  46. Bir dosyanın her satırından tüm alfasayısal karakterleri silin.
  47. Dize eşleştirmek için '&' kullanın
  48. Kelime çiftini değiştir
  49. Her kelimenin ilk karakterini büyük harf yap
  50. Dosyanın satır numaralarını yazdır

1. 'sed' kullanarak temel metin değiştirme

Bir metnin herhangi bir belirli parçası aranabilir ve `sed` komutu kullanılarak desen aranıp değiştirilerek değiştirilebilir. Aşağıdaki örnekte 's', arama ve değiştirme görevini belirtir. Bash Scripting Language metinde 'Bash' kelimesi aranacak ve kelime metinde mevcutsa 'Perl' kelimesi ile değiştirilecektir.



$dışarı attı 'Bash Komut Dosyası Dili' | sed 's/Bash/Perl/'

Çıktı:

Metinde 'Bash' kelimesi var. Böylece çıktı 'Perl Komut Dosyası Dili' olur.

`sed` komutu, bir dosya içeriğinin herhangi bir bölümünü değiştirmek için de kullanılabilir. adlı bir metin dosyası oluşturun. hafta içi.txt aşağıdaki içerikle.

hafta içi.txt

Pazartesi
Salı
Çarşamba
Perşembe
Cuma
Cumartesi
Pazar

Aşağıdaki komut, 'Pazar' metnini 'Pazar tatildir' metniyle arayacak ve değiştirecektir.

$kedihafta içi.txt
$sed 's/Pazar/Pazar tatildir/'hafta içi.txt

Çıktı:

Weekday.txt dosyasında 'Sunday' var ve yukarıdaki 'sed' komutunu çalıştırdıktan sonra bu kelimenin yerine 'Pazar tatildir' metni geliyor.

Başa gitmek

2. 'g' seçeneğini kullanarak bir dosyanın belirli bir satırındaki bir metnin tüm örneklerini değiştirin

'g' seçeneği, tüm eşleşen desen oluşumlarını değiştirmek için 'sed' komutunda kullanılır. adlı bir metin dosyası oluşturun. piton.txt 'g' seçeneğinin kullanımını bilmek için aşağıdaki içerikle. Bu dosya kelimeyi içerir. 'Piton' bir kaç sefer.

piton.txt

Python çok popüler bir dildir.
Python'un kullanımı kolaydır. Python'u öğrenmek kolaydır.
Python, platformlar arası bir dildir

Aşağıdaki komut, ' tüm oluşumlarını değiştirecektir. piton ' dosyanın ikinci satırında, piton.txt . Buraya, 'Piton' ikinci satırda iki kez oluşur.

$ kedi pitonu.txt
$ sed'2 sn / Python / perl / g'piton.txt

Çıktı:

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, ikinci satırdaki tüm 'Python' oluşumu, 'Perl' ile değiştirilir.

Başa gitmek

3. Her satırda yalnızca bir eşleşmenin ikinci oluşumunu değiştirin

Bir dosyada herhangi bir kelime birden çok kez görünüyorsa, o zaman kelimenin her satırdaki belirli oluşumu, oluşum numarasıyla `sed` komutu kullanılarak değiştirilebilir. Aşağıdaki 'sed' komutu, dosyanın her satırında arama düzeninin ikinci oluşumunu değiştirecektir, piton.txt .

$ sed's/Python/perl/g2'piton.txt

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, arama metni, ' piton' yalnızca ikinci satırda iki kez görünür ve yerine ' Perl '.

Başa gitmek

4. Her satırda yalnızca bir eşleşmenin son tekrarını değiştirin

adlı bir metin dosyası oluşturun. lang.txt aşağıdaki içerikle.

lang.txt

Bash Programlama Dili. Python Programlama Dili. Perl Programlama Dili.
Köprü Metni İşaretleme Dili.
Genişletilebilir İşaretleme Dili.

$sed 's/(.*)Programlama/1Scripting/'lang.txt

Başa gitmek

5. Dosyadaki ilk eşleşmeyi yeni metinle değiştirin

Aşağıdaki komut, arama modelinin yalnızca ilk eşleşmesini değiştirecektir, ' piton 'Metinden, 'perl '. Buraya, '1' desenin ilk oluşumunu eşleştirmek için kullanılır.

$ kedi pitonu.txt
$ sed'1 sn / Python / perl /'piton.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Buraya. ilk satırda 'Python'un ilk geçtiği yer 'Perl' ile değiştirilir.

Başa gitmek

6. Dosyadaki son eşleşmeyi yeni metinle değiştirin

Aşağıdaki komut, arama düzeninin son oluşumunu değiştirecektir, piton 'Metinden, 'Ban'. Buraya, '$' sembolü, desenin son tekrarını eşleştirmek için kullanılır.

$ kedi pitonu.txt
$ sed -e'$ s / Python / Bash /'piton.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

7. Dosya yollarının aranmasını ve değiştirilmesini yönetmek için değiştirme komutlarında ters eğik çizgiden kaçma

Arama ve değiştirme için dosya yolundaki ters eğik çizgiden kaçmak gerekir. Aşağıdaki 'sed' komutu dosya yoluna ters eğik çizgi () ekleyecektir.

$dışarı attı /ev/ubuntu/kod/perl/ekle.pl| sed 's; /; \ /; g'

Çıktı:

dosya yolu, '/home/ubuntu/code/perl/add.pl' sed komutunda girdi olarak sağlanır ve yukarıdaki komut çalıştırıldıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

8. Tüm dosyaların tam yolunu yalnızca dizin yok dosya adıyla değiştirin

Dosya adı, ` kullanılarak dosya yolundan çok kolay bir şekilde alınabilir. temel ad' emretmek. sed komutu, dosya yolundan dosya adını almak için de kullanılabilir. Aşağıdaki komut, dosya adını yalnızca 'echo' komutu tarafından sağlanan dosya yolundan alacaktır.

$dışarı attı '/home/ubuntu/temp/dosyam.txt' | sed 's/.*///'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, dosya adı, ' dosyam.txt' çıktı olarak yazdırılır.

Başa gitmek

9. Metni değiştirin, ancak yalnızca dizede başka bir metin bulunursa

' adlı bir dosya oluşturun dept.txt' diğer metne dayalı herhangi bir metni değiştirmek için aşağıdaki içerikle.

dept.txt

Toplam Öğrenci Listesi:

ÖAM - Sayı
EEE - Sayı
Sivil - Sayı

Aşağıdaki `sed` komutunda iki değiştirme komutu kullanılmıştır. Burada, metin, ' Saymak ' ile değiştirilecek 100 metni içeren satırda, 'ÖAM ' ve metin, ' Saymak' ile değiştirilecek 70 arama kalıbını içeren satırda, ' EEE' .

$kedidept.txt
$sed -Ve '/ÖAM/ s/Sayı/100/; /EEE/ s/Sayı/70/;'dept.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

10. Metni değiştirin, ancak yalnızca dizede başka bir metin bulunmazsa

Aşağıdaki 'sed' komutu, 'ÖAM' metnini içermeyen satırdaki 'Sayım' değerinin yerini alacaktır. dept.txt dosyası, 'ÖAM' metnini içermeyen iki satır içerir. Böylece ' Saymak ' metni iki satırda 80 ile değiştirilecektir.

$kedidept.txt
$sed -ben -Ve '/ÖAM/! s/Sayı/80/;'dept.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

11. '1' kullanarak eşleşen desenden önce ve sonra dize ekleyin

'sed' komutunun eşleşen kalıplarının sırası, '1', '2' vb. ile gösterilir. Aşağıdaki `sed` komutu, 'Bash' kalıbını arayacaktır ve kalıp eşleşirse, metin değiştirme bölümünde '1' ile erişilecektir. Burada, giriş metninde 'Bash' metni aranır ve önce bir metin eklenir ve '1' sonra başka bir metin eklenir.

$dışarı attı 'Bash dili' | sed 's/(Bash)/1 programlamayı öğrenin/'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Buraya, ' Öğrenmek' metin önce eklenir 'Dövme' ve ' programlama ' yazısından sonra eklenir Bash'.

Başa gitmek

12. Eşleşen satırları silin

'NS' Dosyadan herhangi bir satırı silmek için `sed` komutunda seçenek kullanılır. adlı bir dosya oluşturun os.txt ve işlevini test etmek için aşağıdaki içeriği ekleyin 'NS' seçenek.

kedi os.txt

pencereler
Linux
Android
SEN

Aşağıdaki `sed` komutu bu satırları os.txt 'OS' metnini içeren dosya.

$kedios.txt
$sed '/D'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

13. Eşleşen satırı ve eşleşen satırdan sonra 2 satırı silin

Aşağıdaki komut dosyadan üç satırı siler os.txt eğer desen, ' Linux' bulunan. os.txt metni içerir, 'Linux ' ikinci satırda. Böylece bu satır ve sonraki iki satır silinecek.

$sed '/ Linux /, + 2d'os.txt

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

14. Metin satırının sonundaki tüm boşlukları silin

kullanma [:boşluk:] class, herhangi bir dosyanın metninden veya içeriğinden boşlukları ve sekmeleri kaldırmak için kullanılabilir. Aşağıdaki komut, dosyanın her satırının sonundaki boşlukları kaldıracaktır, os.txt.

$kedios.txt
$sed 's/[[:blank:]]*$//'os.txt

Çıktı:

os.txt yukarıdaki `sed` komutuyla silinen her satırdan sonra boş satırlar içerir.

Başa gitmek

15. Satırda iki kez eşleşen tüm satırları silin

adlı bir metin dosyası oluşturun, giriş.txt aşağıdaki içerikle ve arama modelini içeren dosyanın bu satırlarını iki kez silin.

giriş.txt

PHP, sunucu taraflı bir betik dilidir.
PHP açık kaynaklı bir dildir ve PHP büyük/küçük harfe duyarlıdır.
PHP platformdan bağımsızdır.

'PHP' metni, dosyanın ikinci satırında iki kez içerir, giriş.txt . Bu örnekte, ' kalıbını içeren satırları kaldırmak için iki 'sed' komutu kullanılmıştır. php ' iki kere. İlk 'sed' komutu, her satırda ikinci 'php' oluşumunu ' ile değiştirecektir. dl ' ve çıktıyı girdi olarak ikinci 'sed' komutuna gönderin. İkinci `sed` komutu, metni içeren satırları siler, ' dl '.

$kedigiriş.txt
$sed 's/php/dl/i2;t'giriş.txt| sed '/dl/d'

Çıktı:

giriş.txt dosyanın deseni içeren iki satırı vardır, 'php' iki kere. Yani, yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

16. Yalnızca boşluk içeren tüm satırları silin

Bu örneği test etmek için içeriğinde boş satırlar bulunan herhangi bir dosyayı seçin. giriş.txt Önceki örnekte oluşturulan dosya, aşağıdaki `sed` komutu kullanılarak silinebilecek iki boş satır içeriyor. Burada dosyadaki boş satırları bulmak için '^$' kullanılır, giriş.txt.

$kedigiriş.txt
$sed '/^$/d'giriş.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

17. Yazdırılamayan tüm karakterleri silin

Yazdırılamayan karakterler, yazdırılamayan karakterleri hiçbiri ile değiştirerek herhangi bir metinden silinebilir. [:print:] sınıfı bu örnekte yazdırılamayan karakterleri bulmak için kullanılmıştır. ' ' yazdırılamaz bir karakterdir ve doğrudan 'echo' komutu ile ayrıştırılamaz. Bunun için bir 'echo' komutunda kullanılan $tab değişkeninde ' ' karakteri atanır. 'echo' komutunun çıktısı, çıktıdan ' ' karakterini kaldıracak olan 'sed' komutunda gönderilir.

$sekme= $'T'
$dışarı attı 'Merhaba$tabDünya'
$dışarı attı 'Merhaba$tabDünya' | sed 's/[^[:baskı:]]//g'

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. İlk `echo komutu, çıktıyı sekme boşluğu ile yazdıracak ve `sed` komutu, sekme boşluğunu kaldırdıktan sonra çıktıyı yazdıracaktır.

Başa gitmek

18. Satırda bir eşleşme varsa satırın sonuna bir şey ekleyin

Aşağıdaki komut, 'Windows' metnini içeren satırın sonuna '10' ekleyecektir. os.txt dosya.

$kedios.txt
$sed '/ Windows / s / $ / 10 /'os.txt

Çıktı:

Komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

19. Satırda bir eşleşme varsa, metnin önüne bir satır ekleyin.

Aşağıdaki 'sed' komutu metni arayacaktır, ' PHP platformdan bağımsızdır' içinde giriş.txt Daha önce oluşturulmuş dosya. Dosya herhangi bir satırda bu metni içeriyorsa, ' PHP yorumlanmış bir dildir' bu satırdan önce eklenecektir.

$kedigiriş.txt
$sed '/PHP platformdan bağımsızdır/ s/^/PHP yorumlanan bir dildir. /'giriş.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

20. Satırda bir eşleşme varsa, o satırdan sonra bir satır ekleyin

Aşağıdaki 'sed' komutu metni arayacaktır, ' Linux' dosyanın içinde os.txt ve metin herhangi bir satırda mevcutsa, yeni bir metin, ' Ubuntu ' bu satırdan sonra eklenecektir.

$kedios.txt
$sed 's/Linux/& Ubuntu/'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

21. Bir eşleşme yoksa satırın sonuna bir şey ekleyin

Aşağıdaki `sed` komutu bu satırları arayacaktır. os.txt metni içermeyen, 'Linux' ve metni ekleyin, ' İşletim sistemi ' her satırın sonunda. Buraya, ' $ ' sembolü, yeni metnin ekleneceği satırı belirtmek için kullanılır.

$kedios.txt
$sed '/Linux/! S/$/ İşletim Sistemi/'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. os.txt dosyasında 'Linux' metnini içermeyen üç satır var ve bu satırların sonuna eklenen yeni metinler.

Başa gitmek

22. Eşleşme yoksa satırı silin

adlı bir dosya oluşturun web.txt ve aşağıdaki içeriği ekleyin ve eşleşen kalıbı içermeyen satırları silin. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Aşağıdaki `sed` komutu, 'CSS' metnini içermeyen satırları arayacak ve silecektir. $ kedi web.txt$ sed ‘/CSS/!d’ web.txt Çıktı: Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyada 'ÖAM' metnini içeren bir satır var. Yani çıktı sadece bir satır içeriyor.

Başa gitmek

23. Metinden sonra bir boşluk ekledikten sonra eşleşen metni çoğaltın

Aşağıdaki 'sed' komutu dosyada 'to' kelimesini arayacaktır, piton.txt ve kelime varsa, aynı kelime boşluk eklenerek arama kelimesinden sonra eklenecektir. Buraya, '&' sembolü yinelenen metni eklemek için kullanılır.

$kedipiton.txt
$sed -Ve 's / ila / & ila / g'piton.txt

Çıktı:

Komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada dosyada 'to' kelimesi aranır, piton.txt ve bu kelime bu dosyanın ikinci satırında yer almaktadır. Yani, 'ile ' ile eşleşen metinden sonra boşluk eklenir.

Başa gitmek

24. Bir dizi diziyi yeni diziyle değiştirin

Bu örneği test etmek için iki liste dosyası oluşturmanız gerekir. adlı bir metin dosyası oluşturun. liste1.txt ve aşağıdaki içeriği ekleyin.

kedi listesi1.txt

1001=>Cafer Ali
1023=>Nir Hossain
1067=>John michel

adlı bir metin dosyası oluşturun. liste2.txt ve aşağıdaki içeriği ekleyin.

$ kedi listesi2.txt

1001ÖAM GPA3.63
1002ÖAM GPA3.24
1023ÖAM GPA3.11
1067ÖAM GPA3.84

Aşağıdaki 'sed' komutu, yukarıda gösterilen iki metin dosyasının ilk sütunuyla eşleşecek ve eşleşen metni dosyanın üçüncü sütununun değeriyle değiştirecektir. liste1.txt.

$kediliste1.txt
$kediliste2.txt
$sed ``kediliste1.txt| awk '{print' -e s / '$ 1' / '3$' / '}'``<<<'` kedi listesi2.txt`'

Çıktı:

1001, 1023 ve 1067 liste1.txt üç veri ile dosya eşleşmesi liste2.txt dosya ve bu değerler üçüncü sütunun karşılık gelen adları ile değiştirilir. liste1.txt .

Başa gitmek

25. Eşleşen dizeyi yeni satırlar içeren bir dizeyle değiştirin

Aşağıdaki komut, `echo` komutundan girdi alacak ve kelimeyi arayacaktır, 'Piton' Metinde. Sözcük metinde mevcutsa, yeni bir metin, 'Metin Eklendi' yeni satır ile eklenecektir. $ echo Bash Perl Python Java PHP ASP | sed 's/Python/Eklenen Metin /' Çıktı: Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

26. Yeni satırları dosyadan kaldırın ve her satırın sonuna virgül koyun

Aşağıdaki `sed` komutu, dosyadaki her yeni satırı bir virgülle değiştirecektir. os.txt . Buraya, -İle birlikte seçeneği, satırı NULL karakterle ayırmak için kullanılır.

$sed -İle birlikte 's/ /,/g'os.txt

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

27. Metni birden çok satıra bölmek için virgülleri kaldırın ve yeni satır ekleyin

Aşağıdaki 'sed' komutu, girdi olarak 'echo' komutundan virgülle ayrılmış satırı alacak ve virgülü yeni satırla değiştirecektir.

$dışarı attı 'Kaniz Fatema, 30. parti' | sed 's/,/ /G'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Giriş metni, yeni satırla değiştirilen ve üç satıra yazdırılan virgülle ayrılmış üç veri içerir.

Başa gitmek

28. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve satırı silin

'I', büyük/küçük harfe duyarsız eşleşme için büyük/küçük harf yoksayma durumunu belirten 'sed' komutunda kullanılır. Aşağıdaki `sed` komutu, kelimeyi içeren satırı arayacaktır, 'linux' ' ve satırı şuradan silin: os.txt dosya.

$kedios.txt
$sed '/linux/kimlik'os.txt

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. os.txt, büyük/küçük harfe duyarsız arama için 'linux' kalıbıyla eşleşen ve silinen 'Linux' kelimesini içerir.

Başa gitmek

29. Büyük/küçük harfe duyarlı olmayan eşleşmeyi bulun ve yeni metinle değiştirin

Aşağıdaki 'sed' komutu, 'echo' komutundan girdi alacak ve 'bash' kelimesini 'PHP' kelimesiyle değiştirecektir.

$dışarı attı 'Bash programlamayı seviyorum' | sed 's/Bash/PHP/i'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada, 'Bash' kelimesi, büyük/küçük harfe duyarsız arama için 'bash' kelimesiyle eşleşti ve 'PHP' kelimesiyle değiştirildi.

Başa gitmek

30. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve aynı metnin tamamını büyük harfle değiştirin

' U' sed'de herhangi bir metni tamamı büyük harfe dönüştürmek için kullanılır. Aşağıdaki `sed` komutu kelimeyi arayacaktır, 'linux' ' içinde os.txt dosya ve eğer kelime varsa, o zaman kelimeyi tüm büyük harflerle değiştirecektir.

$kedios.txt
$sed 's / (linux ) / U 1 / Ig'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. os.txt dosyasının 'Linux' kelimesi, 'LINUX' kelimesi ile değiştirilmiştir.

Başa gitmek

31. Büyük/küçük harfe duyarsız eşleşmeyi bulun ve aynı metnin tamamını küçük harfle değiştirin

'NS' herhangi bir metni tüm küçük harflere dönüştürmek için 'sed'de kullanılır. Aşağıdaki `sed` komutu kelimeyi arayacaktır, 'Linux' içinde os.txt dosya ve kelimeyi tüm küçük harflerle değiştirin.

$kedios.txt
$sed 's / (linux ) / L 1 / Ig'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada 'Linux' kelimesi, 'linux' kelimesi ile değiştirilmiştir.

Başa gitmek

32. Metnin tüm büyük harflerini küçük harflerle değiştirin

Aşağıdaki `sed` komutu, dizindeki tüm büyük harfli karakterleri arayacaktır. os.txt dosyası oluşturun ve karakterleri 'L' kullanarak küçük harflerle değiştirin.

$kedios.txt
$sed 's/(.*)/L1/'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

33. Satırda sayı arayın ve herhangi bir para birimi sembolünü satırın önüne ekleyin. sayı

adlı bir dosya oluşturun öğeler.txt aşağıdaki içerikle.

öğeler.txt

HDD 100
80 monitör
fare 10

Aşağıdaki 'sed' komutu, her satırdaki sayıyı arayacaktır. öğeler.txt dosyalayın ve her sayıdan önce '$' para birimi simgesini ekleyin.

$kediöğeler.txt
$sed 's / ([0-9] ) / $ 1 / g'öğeler.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada her satırın numarasının önüne '$' sembolü eklenir.

Başa gitmek

34. 3 basamaktan fazla olan sayılara virgül ekleyin

Aşağıdaki 'sed' komutu, 'echo' komutundan girdi olarak bir sayı alacak ve sağdan sayarak her üç basamaklı gruptan sonra virgül ekleyecektir. Burada ':a' etiketi belirtir ve 'ta' gruplama işlemini yinelemek için kullanılır.

$dışarı attı '5098673' | sed -Ve:ile-Ve 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'

Çıktı:

5098673 sayısı 'echo' komutunda verilir ve 'sed' komutu her üç basamaklı grubun sonuna virgül ekleyerek 5.098.673 sayısını oluşturur.

Başa gitmek

35. Sekme karakterini 4 boşluk karakteriyle değiştirir

Aşağıdaki `sed` komutu, her sekme ( ) karakterini dört boşluk karakteri ile değiştirecektir. Sekme karakterini eşleştirmek için 'sed' komutunda '$' sembolü ve tüm sekme karakterlerini değiştirmek için 'g' kullanılır.

$dışarı attı -Ve '1T2T3' | sed$'s/ / /g'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

36. 4 ardışık boşluk karakterini sekme karakteriyle değiştirir

Aşağıdaki komut 4 ardışık karakteri sekme ( ) karakteriyle değiştirecektir.

$dışarı attı -Ve '1 2' | sed$'s/ / /g'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

37. Tüm satırları ilk 80 karaktere kadar kısaltın

adlı bir metin dosyası oluşturun. in.txt Bu örneği test etmek için 80'den fazla karakter içeren satırlar.

in.txt

PHP, sunucu taraflı bir betik dilidir.
PHP açık kaynaklı bir dildir ve PHP büyük/küçük harfe duyarlıdır. PHP platformdan bağımsızdır.
Aşağıdaki 'sed' komutu, her satırı kesecektir. in.txt 80 karaktere dosyalayın.

$kediin.txt
$sed 's/(^.{1,80}).*/1/'in.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. in.txt dosyasının ikinci satırı 80'den fazla karakter içerir ve bu satır çıktıda kesilir.

Başa gitmek

38. Bir dize normal ifadesi arayın ve ondan sonra bazı standart metinler ekleyin

Aşağıdaki 'sed' komutu metni arayacaktır, ' Merhaba ' giriş metninde ve metni ekleyin,' John ' bu yazıdan sonra.

$dışarı attı 'Merhaba nasılsın?' | sed 's/(merhaba)/1 Can/'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

39. Dize normal ifadesini arayın ve her satırdaki ikinci eşleşmeden sonra bir metin ekleyin

Aşağıdaki 'sed' komutu metni arayacaktır, ' PHP 'her satırında giriş.txt ve her satırdaki ikinci eşleşmeyi metinle değiştirin, 'Yeni Metin Eklendi' .

$kedigiriş.txt
$sed 's/(PHP)/1 (Yeni Metin eklendi)/2'giriş.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Arama metni, ' PHP ' ikinci ve üçüncü satırlarda iki kez görünür giriş.txt dosya. Yani metin, ' Yeni Metin eklendi ' ikinci ve üçüncü satırlara eklenir.

Başa gitmek

40. Bir dosyadan çok satırlı `sed` komut dosyalarını çalıştırma

Bir dosyada birden fazla 'sed' komut dosyası saklanabilir ve 'sed' komutu çalıştırılarak tüm komut dosyaları birlikte çalıştırılabilir. adlı bir dosya oluşturun 'sedcmd ' ve aşağıdaki içeriği ekleyin. Burada, dosyaya iki `sed` betiği eklenir. Bir komut dosyası metnin yerini alacak, ' PHP ' tarafından 'ASP ' başka bir komut dosyası metnin yerini alacak,' bağımsız 'Metinden,' bağımlı '.

sedcmd

s/PHP/ASP/
s/bağımsız/bağımlı/

Aşağıdaki 'sed' komutu, tüm 'PHP' ve 'bağımsız' metinleri 'ASP' ve 'bağımlı' ile değiştirecektir. Burada, dosyadan sed komut dosyasını çalıştırmak için sed komutunda '-f' seçeneği kullanılır.

$kedisedcmd
$sed -Fsedcmd girişi.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

41. Çok satırlı bir deseni eşleştirin ve yeni çok satırlı metinle değiştirin

Aşağıdaki `sed` komutu çok satırlı metni arayacaktır, 'Linux Android' ve desen eşleşirse, eşleşen satırlar çok satırlı metinle değiştirilecektir, 'Ubuntu Android Lolipopu '. Burada P ve D çok satırlı işleme için kullanılır.

$kedios.txt
$sed '$!N;s/Linux Andoid/Ubuntu Andoid Lollipop/;P;D'os.txt

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

42. Bir metinde bir kalıpla eşleşen iki kelimenin sırasını değiştirin

Aşağıdaki 'sed' komutu, 'echo' komutundan iki kelimenin girişini alacak ve bu kelimelerin sırasını değiştirecektir.

$dışarı attı 'perl pitonu' | sed -Ve 's/([^ ]*) *([^ ]*)/2 1/'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

43. Komut satırından birden çok `sed` komutunu çalıştırın

'-e' seçeneği, komut satırından birden çok 'sed' betiğini çalıştırmak için 'sed' komutunda kullanılır. Aşağıdaki 'sed' komutu, 'echo' komutundan girdi olarak bir metin alacak ve ' Ubuntu ' tarafından ' Kubuntu ' ve ' yüzlerce ' tarafından ' fötr şapka '.

$dışarı attı 'Ubuntu Centos Debian' | sed -Ve 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Burada 'Ubuntu' ve 'Centos', 'Kubuntu' ve 'Fedora' ile değiştirilir.

Başa gitmek

44. sed'i diğer komutlarla birleştirin

Aşağıdaki komut, 'sed' komutunu 'cat' komutuyla birleştirecektir. İlk `sed` komutu girdiyi şuradan alacaktır: os.txt dosyasını açın ve 'Linux' metnini 'Fedora' ile değiştirdikten sonra komutun çıktısını ikinci 'sed' komutuna gönderin. İkinci 'sed' komutu, 'Windows' metnini 'Windows 10' ile değiştirecektir.

$kedios.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

45. Dosyaya boş satır ekleyin

adlı bir dosya oluşturun standart liste aşağıdaki içerikle.

standart liste

#Kimlik #Ad
[101] -Fakat
[102] -Neha

Dosyaya boş satır eklemek için 'G' seçeneği kullanılır. Aşağıdaki 'sed' komutu, her satırdan sonra boş satırlar ekleyecektir. standart liste dosya.

$kedistandart liste
$sedG standart listesi

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Dosyanın her satırından sonra boş bir satır eklenir.

Başa gitmek

46. ​​Dosyanın her satırında tüm alfasayısal karakterleri boşlukla değiştirin.

Aşağıdaki komut, tüm alfasayısal karakterleri boşlukla değiştirecektir. standart liste dosya.

$kedistandart liste
$ama 's / [A-Za-z0-9] // g'standart liste

Çıktı:

Yukarıdaki komutları çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

47. Eşleşen dizeyi yazdırmak için '&' kullanın

Aşağıdaki komut, 'L' ile başlayan kelimeyi arayacak ve metni sonuna ekleyerek değiştirecektir. 'Eşleşen Dize - ‘&’ sembolünü kullanarak eşleşen kelime ile. Burada, değiştirilen metni yazdırmak için 'p' kullanılır.

$sed -n 's/^L/Eşleşen Dize - &/p'os.txt

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir.

Başa gitmek

48. Bir dosyadaki kelime çiftini değiştirin

adlı bir metin dosyası oluşturun. kurs.txt her satırdaki kelime çiftini içeren aşağıdaki içerikle.

kurs.txt

PHP ASP'si
MySQL Oracle'ı
CodeIgniter Laravel

Aşağıdaki komut, dosyanın her satırındaki kelime çiftini değiştirir, kurs.txt .

$sed 's/([^ ]*) *([^ ]*)/2 1/'kurs.txt

Çıktı:

Her satırdaki kelime çiftini değiştirdikten sonra aşağıdaki çıktı görünecektir.

Başa gitmek

49. Her kelimenin ilk karakterini büyük harf yapın

Aşağıdaki 'sed' komutu, 'echo' komutundan girdi metni alacak ve her kelimenin ilk karakterini büyük harfe dönüştürecektir.

$dışarı attı 'Bash programlamayı seviyorum' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. Giriş metni, bash programlamayı severim, ilk kelimeyi büyük harf yaptıktan sonra Bash Programlamayı Seviyorum olarak yazdırılır.

Başa gitmek

50. Dosyanın satır numaralarını yazdırın

'=' sembolü, bir dosyanın her satırından önce satır numarasını yazdırmak için 'sed' komutu kullanılır. Aşağıdaki komut içeriği yazdıracaktır. os.txt satır numarasına sahip dosya.

$sed '='os.txt

Çıktı:

Yukarıdaki komutu çalıştırdıktan sonra aşağıdaki çıktı görünecektir. içinde dört satır var os.txt dosya. Böylece, dosyanın her satırından önce satır numarası yazdırılır.

Başa gitmek

Çözüm:

Bu eğitimde `sed` komutunun farklı kullanımları çok basit örnekler kullanılarak açıklanmıştır. Burada bahsedilen tüm 'sed' komut dosyalarının çıktısı geçici olarak oluşturulur ve orijinal dosyanın içeriği değişmeden kalır. Ancak isterseniz, `sed komutunun –i veya –in-place seçeneğini kullanarak orijinal dosyayı değiştirebilirsiniz. Yeni bir Linux kullanıcısıysanız ve çeşitli türde dizi işleme görevlerini gerçekleştirmek için 'sed' komutunun temel kullanımlarını öğrenmek istiyorsanız, bu eğitim size yardımcı olacaktır. Bu öğreticiyi okuduktan sonra, herhangi bir kullanıcının 'sed' komutunun işlevleri hakkında net bir fikir edineceğini umuyoruz.

Sıkça Sorulan Sorular

sed komutu ne için kullanılır?

sed komutunun birkaç farklı kullanımı vardır. Bununla birlikte, ana kullanım, bir dosyadaki kelimeleri değiştirmek veya bulmak ve değiştirmek içindir.

sed ile ilgili en iyi şey, bir dosyada bir kelime arayıp değiştirebilmenizdir, ancak dosyayı asla açmanıza bile gerek kalmaz - sed her şeyi sizin için yapar!

Bunun yanı sıra, silme için kullanılabilir. Tek yapmanız gereken, bulmak, değiştirmek veya silmek istediğiniz kelimeyi sed'e yazmaktır ve o sizin için getirir - daha sonra o kelimeyi değiştirmeyi veya kelimenin tüm izlerini dosyanızdan silmeyi seçebilirsiniz.

sed, IP adresleri gibi şeyleri ve başka türlü bir dosyaya koymak istemeyeceğiniz son derece hassas olan her şeyi değiştirebilmek için harika bir araçtır. sed, herhangi bir yazılım mühendisinin mutlaka bilmesi gereken bir yazılımdır!

sed komutunda S ve G nedir?

En basit ifadeyle, sed'de kullanılabilen S işlevi, basitçe 'ikame' anlamına gelir. S'yi yazdıktan sonra, istediğiniz herhangi bir şeyi değiştirebilir veya değiştirebilirsiniz - sadece S yazmak, kelimenin yalnızca bir satırda ilk geçtiği yeri değiştirir.

Bu nedenle, birden fazla kez bahseden bir cümleniz veya satırınız varsa, S işlevi ideal değildir, çünkü yalnızca ilk oluşumun yerine geçecektir. S'nin sözcükleri her iki oluşumda bir değiştirmesini sağlamak için bir kalıp belirleyebilirsiniz.

sed komutunun sonunda G'nin belirtilmesi, genel bir değiştirme yapacaktır (G'nin anlamı budur). Bunu akılda tutarak, G'yi belirtirseniz, yalnızca S'nin yaptığı ilk oluşumun yerine, seçtiğiniz kelimenin her oluşumunu değiştirecektir.

Bir sed betiğini nasıl çalıştırırım?

Bir sed betiğini çeşitli şekillerde çalıştırabilirsiniz, ancak en yaygın olanı komut satırındadır. Burada sadece sed'i ve komutu kullanmak istediğiniz dosyayı belirtebilirsiniz.

Bu, o dosyada sed kullanmanıza izin vererek, gerektiğinde bulmanızı, silmenizi ve değiştirmenizi sağlar.

Ayrıca bir kabuk komut dosyasında da kullanabilirsiniz ve bu şekilde komut dosyasına istediğinizi iletebilirsiniz ve bul ve değiştir komutunu sizin için çalıştıracaktır. Bu, bir komut dosyası içinde çok hassas verileri belirtmek istememek için kullanışlıdır, bunun yerine onu bir değişken olarak iletebilirsiniz.

Bunun elbette yalnızca Linux'ta mevcut olduğunu ve bu nedenle sed betiğinizi çalıştırmak için bir Linux komut satırına sahip olduğunuzdan emin olmanız gerektiğini unutmayın.