Bir değişkende saklanan Sed değiştirme satırı


0

Başlayan bir satır bulmam ve satırın mysql.unmetric.twt.urltamamını ip değişkeninde saklanan satırla değiştirmem gerekiyor.

ip="mysql.unmetric.twt.url=jdbc:mysql://ec2-a-b-c-d.compute-1.amazonaws.com:3306/unmetric? jdbcCompliantTruncation=false&useUnicode=yes&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true"

Sed kullanarak bu nasıl başarılabilir?



Sed -i "s / ^ mysql.unmetric.all.url / $ ip / g" dosya adı yapmayı denedim ama işe yaramadı. Lütfen yardım eder misiniz
— Prashanth Ganesh

Yanıtlar:


1

İki aşama vardır: önce herhangi bir özel karakterden kaçmanız gerekir $ip:

echo $ip|sed 's#[./&?]#\\&#g'

Sonra ikame gerçekleştirmeniz gerekir:

sed -i "s/^mysql\.unmetric\.twt\.url.*$/replacement/g" filename

Birlikte bunlar verir:

sed -i "s/^mysql\.unmetric\.twt\.url.*$/$(echo $ip|sed 's#[./&?]#\\&#g')/g" filename

Ana ikame için çift tırnak işaretinin önemli olduğunu ve yedek dizginin yorumlanacağını unutmayın.


cçok fazla çeviri gerektirmeyen eylemi kullanabilirsiniz (eğer varsa sadece yeni satırlar var, bu durumda değil)
— NeronLeVelu 12:15

@NeronLeVelu - "İşlem c" ile ne demek istiyorsun ? Bu komutu bilmiyorum, Ubuntu'da varsayılan olarak kurulu değil ve aranması kolay bir isim değil. Yoksa sed(hangi sürümüm içermez) bir seçenek midir?
— AFH

c'içeriği izleyerek satırın içeriğini (aslında çalışma arabelleğini değiştirerek) değiştiren bir eylemdir. Şu anki satırı / içeriği izleyen csatırla değiştirir, yeni futur içerik satırları `` ile değiştirilir, böylece birkaç satır değiştirmek için kullanılabilir.
— NeronLeVelu

@NeronLeVelu - Tamam, teşekkürler. Bu komutu kullanmadım, ancak ileride başvurmak için aklımda tutarım.
— AFH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.