Linux'taki birçok metin dosyasındaki yolu değiştirin


0

Lütfen yolu tek bir linerdeki birden fazla metin dosyasında değiştirmeme yardım edin.

Diyelim ki /home/shyam/Raghav/2014/12_dec/31122014/metin dosyalarımda var ve onunla değiştirilmesini istiyorum /home/shyam/Raghav/12_dec/31122014, nasıl yapabilirim?


Açıklığa kavuşturmak için, o dizgiyi bazı metin dosyalarında bulunduruyorsunuz ve sadece kısa versiyonuyla değiştirmek mi istiyorsunuz?
jkeuhlen

Yanıtlar:


1

Bir kabukta

cat original_file_prefix.* | sed 's/[" ]//g' > new_file_name

Veya dosyalarınızı vim ile açın ve aşağıdakini yazın (yine de çalıştırmanız gerekir)

:%s/[" ]//g

Alıntılar ve boşluklardan kurtulmalı.


1

Bu komutu deneyin:

sed -i 's/\/home\/shyam\/Raghav\/2014\/12_dec\/31122014\//\/home\/shyam\/Raghav\/12_dec\/31122014/g' files*

-i seçenek yerinde dosyaları düzenlemek.

files*İstediğiniz arama modeliyle değiştirin .

Bunun, önerdiğiniz şekilde değiştirildiğine dikkat /home/shyam/Raghav/2014/12_dec/31122014/edin /home/shyam/Raghav/12_dec/31122014. /Sonuçta final olmadan . İsterseniz , komutun sonunda /gile değiştirin \//g.


1
sed -i 's:/home/shyam/Raghav/2014/12_dec/31122014/:/home/shyam/Raghav/12_dec/31122014:g' files*.txt

-1

Birden fazla metin dosyasındaki tüm yolları değiştirmek için, tüm bu dosyaları bölünmüş bir pencerede açmanızı tavsiye ederim. yani
'vim -o [dosya1] [dosya2] [dosya3] ...'
Artık tüm dosyaların ayrı bir ViM arabelleğinde açıldığını göreceksiniz. Şimdi, ihtiyaç duyulan metni arabelleklerin TÜMÜ olarak değiştirmek için aşağıdakileri yapabilirsiniz:
': windo% s / [SEARCH_PATTERN] / [REPLACE_PATTERN] / g'
Bu, arabelleklerin TÜMünde metin değiştirme komutunu vermelidir.

Komutunuz şöyle olmalı
::% s / \ / home \ / shyam \ / Raghav \ / 2014 \ / 12_dec \ / 31122014 \ / \ shyam \ / Raghav \ / 2014 \ / 12_dec \ / 31122014 \ // \ shyam \ / Ragyam \ / 12_dec \ / 31122014 '

Umarım yardımcı olur.

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.