`sed` Komutunu Kullanarak Yeni Satırı Virgülle Değiştirme

How Replace Newline With Comma Using Sed Command



Herhangi bir karakter veya dize `sed` komutu kullanılarak değiştirilebilir. Bazen bir dosyadaki yeni satır karakterini ( ) virgülle değiştirmemiz gerekir. Bu yazıda yerine virgül koymak için `sed` komutunu kullanıyoruz.

yerine virgül koymak için `sed` kullanma

yerine virgül konulduğunda birçok sorun ortaya çıkabilir. Varsayılan olarak, bir dosya oluştururken her satır ile biter. `sed` komutu üzerinde kolayca bölünebilir ve yeni satırı herhangi bir karakterle değiştirebilir. yerine başka bir sınırlayıcı kullanılabilir, ancak yalnızca GNU sed kullanıldığında. Dosyanın son satırında eksik olduğunda, GNU sed yazdırmayı önleyebilir. Ayrıca, genellikle her ardışık `sed` çıkışına eklenir.







Dosya Oluştur

Bu yazıda, yerine virgül koymak için `sed` komutunu nasıl kullanacağınızı göstereceğiz. Bu öğreticiyi takip etmek için adlı bir metin dosyası oluşturun. Clients.txt aşağıdaki tablo halindeki müşteri bilgileriyle.



İD İsim E-posta Telefon
c01 Md. Rakıb [e-posta korumalı] 0185623238
c02 meher dondu [e-posta korumalı] 0173356342
c03 Fakrul Ahsan [e-posta korumalı] 01934737248
c04 Helal Uddin [e-posta korumalı] 01534895898
c05 Nusret Cihan [e-posta korumalı] 01866345254

Örnek 1: 'yi -z kullanarak virgülle değiştirin

-z seçeneği, 'yi boş karaktere () dönüştürmek için kullanılır. Boş karakter içermiyorsa, dosyanın içeriği tek bir satır olarak kabul edilir. `sed` komutu yeni satırı boş karaktere dönüştürür ve ilk arama ve değiştirme kalıbını kullanarak her yerine bir virgül koyar. Burada 'g', 'yi global olarak aramak için kullanılır. İkinci arama ve değiştirme modeliyle, son virgül ile değiştirilir.



$kediClients.txt

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

Komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir.





Örnek 2: 'yi a, b, $ kullanarak bir virgülle değiştirin! ve N

yerine virgül koymak için `sed` komutu kullanılabilir. a, b, N ve $! . Buraya, ile görevleri eklemek için kullanılır, B içeriği dallandırmak için kullanılır, n sonraki satıra gitmek için kullanılır ve $! değiştirme görevinin son satıra uygulanmasını önlemek için kullanılır. Komut her birinin yerini alacak son satır hariç virgül ile.



$kediClients.txt

$sed ':a;N;$!ba;s/ /,/g'Clients.txt

Komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir.

Örnek 3: 'yi H, h, d, x ve y kullanarak virgülle değiştirin

değiştirmek istersen ) küçük bir dosyada virgül varsa, aşağıdaki `sed` komutu kullanılabilir. Buraya, H tutma metnine son satırı eklemek için kullanılır, dosyanın her satırını ilk satırdan tutma metnine kopyalamak için 1h kullanılır, $!d son satır hariç tüm satırları silmek için kullanılır, x tutma metni ve desen alanını değiştirmek için kullanılır ve ve her birini değiştirmek için kullanılır tutma metninde virgülle.

$kediClients.txt

$sed 'H;1h;$!d;x;y/ /,/'Clients.txt

Komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir.

Örnek 4: -n ,H, h, g ve p kullanarak 'yi virgülle değiştirin

`sed` komutu değiştirmek için kullanılabilir virgül ile -n otomatik yazdırmayı önleyen seçenek. Önceki örnekte olduğu gibi, H burada tutma metnine son satırı eklemek için kullanılır, 1 saat dosyanın her satırını tutma metnine kopyalamak için kullanılır, $ dosyanın son satırına atıfta bulunur, G tutma metninden kopyalamak için kullanılır ve P yazdırmak için kullanılır.

$kediClients.txt

$sed-n'H;1h; ${g; s / /,/g;p}'Clients.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir.

Örnek 5: 'yi H, x, p kullanarak bir virgülle değiştirin

H, x ve p önceki örneklerde açıklanmıştır. İlk ara ve değiştir ifadesi her birinin yerini alacaktır. virgülle ve ikinci ara ve değiştir ifadesi, satırın başındaki virgülü bir boşlukla değiştirecektir.

$kediClients.txt

$sed-n'H;${x;s/ /,/g;s/^,//;p;}'Clients.txt

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir.

Örnek 6: 'yi N ve 'cat' kullanarak virgülle değiştirin

Burada 'cat' komutu, dosyanın içeriğini 'sed' komutuna göndermek için kullanılır ve n sonraki satıra geçmek için kullanılır.

$kediClients.txt

$kediClients.txt| sed 'N;s/ /,/'

Yukarıdaki komutlar çalıştırıldıktan sonra aşağıdaki çıktı üretilecektir.

Çözüm

Bir dosya biçiminden diğerine veri aktarmak için yerine virgül koymak gerekebilir. Bu tür değiştirme, diğer Linux komutları kullanılarak da yapılabilir. H, N, h ve x gibi birçok komut seçeneği, bu görevi tamamlamak için `sed` komutuyla birlikte kullanılabilir. Bu öğretici, yerine virgül koymak için `sed` komutunu kullanmanın çeşitli yollarını inceler.