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.