Bir bütün klasördeki sonunda bir boşluk bulmak için Regex soru

3 Cevap php

Ben bir klasör 1000 dosyaları>, bir wordpress kurulumu çekti var. Bazı php kod nedeniyle son satırında sondaki boşlukları bir hata atıyor (ben bazı sayfaları nihai hatları üzerinde bir iframe enjeksiyon temizlenmiş ve bir boşluk ile değiştirin / buldunuz, ama bu tüm atmak olacağını bilmiyordum benim kod).

Bu boşluk doğramak için en etkili yolu nedir? Ben daha önce bir regex çalıştırmak, ama ben kullanmak ne biliyor hiç. Yardım!

3 Cevap

Gibi bir şey:

find-type f | Xargs sed-i '$ s / [[: space:]] + $ / /'

Her yerde CWD'sindeki herhangi bir dosyanın son satırında sondaki boşluk kaldırmak gerekir. Ilk $ "son satır" için sed adres ve ikinci satırın sonu için regex olduğunu.

Her zaman olduğu gibi, ilk yedekleme emin olun.

Eğer dosyanın son satırında sonunda bir alan bulunuyor eminseniz, o zaman olsun "bulmak." Kullanımı (her dosya için, (I Linux kullanıyorsanız varsayarak yaşıyorum) bir bash betiği istediğim bir sonra liste), kuyruk -1 dosya ve boşluk ya da sekme için bu satırı grep.

Teğet, bu kapanış?> PHP dosyalarının sonunda gereksiz olduğunu ve orada atlamak için en iyisi olduğunu bilmek yararlıdır. Ben ">" Ben ile biten bir PHP dosyasını gördüm sayısını saymak olamaz ve insanlar bulmaya çalışıyor fındık gitmek çıkışı / başlık sorunlara neden oluyor ekstra bir boşluk.

in this case what i would do is write a script or program that when given a directory it recursively goes through finding files ending in .php or whatever then simply write a function that 1)seeks to the last byte and stores this position 2)if this byte is whitespace seek back a byte and check again 3)if it is not white space return the offset

sonra yeni bir kopya olarak ya da eskisinin üzerine her dosyayı yazabilirsiniz ya o kullanıyor

P.S. Yukarıdaki çözümlerden biri de çalışmak: P