Bir kod dosyasından tüm boşlukları kaldırmak için kolay yolu?

4 Cevap php

Yani daha küçük dosya boyutu, daha iyi Code Golf yarışmalarından birinde katılan ediyorum.

Aksine elle tüm boşluk vb kaldırarak yerine, ben, bir dosya almak (yeni hatlar da dahil olmak üzere) tüm boşlukları kaldırın ve dosyanın kompakt bir versiyonunu döndürür bir program veya web sitesi için arıyorum. herhangi bir fikir?

4 Cevap

Sen-ebil kullanma

sed 's/\s\s+/ /g' youfile > yourpackedfile

Bu online tool orada da

Hatta PHP bunu yapabilirsiniz (hayat nasıl muhteşem)

$data = file_get_contents('foobar.php');
$data = preg_replace('/\s\s+/', ' ', $data);
file_put_contents('foobar2.php',$data);

Böyle string değişkenin bakım almayacağız $bar = ' asd aa a'; Bir sorun ne yapıyorsun bağlıdır olabileceğini unutmayın zorunda. Online araç düzgün bu işlemek gibi görünüyor.

PowerShell (v2) bu aşağıdaki küçük parçası ile yapılabilir:

(-join(gc my_file))-replace"\s"

ya da daha fazla:

(-join (Get-Content my_file)) -replace "\s"

Bu arada tüm satırları katılmak ve tüm boşlukları ve sekmeleri kaldırmak olacaktır.

Ancak, bazı diller için muhtemelen bunu istemiyorum. Bunu kod gibi tek bir hat üzerinde birden fazla ifadeleri koymak sürece PowerShell örneğin virgül gerekmez

while (1) {
    "Hello World"
    $x++
}

olacak

while(1){"HelloWorld"$x++}

safça Anılan ifadeleri uygularken. Hem anlam ve programın sözdizimsel doğruluğunu değiştirdi. Muhtemelen çok fazla sayısal golfed çözümleri için dışarı bakmak için ama hatları ile sorun yine ne yazık ki, hala birlikte katıldı. Sadece, her satır arasındaki bir noktalı virgül koyarak aslında ya yardımcı olmuyor.

kod editörü programları regex destekliyorsa, bu deneyebilirsiniz:

Find this: [\r\n]{2,} Replace with this: \n Then Replace All

Bunun üzerine php -w çalıştırın!

php -w myfile.php

Bir regex aksine, bu tek başına dizeleri bırakacak kadar akıllı olduğunu ve çok yorum kaldırır.