İyi çalıştığım bir komut dosyası var ama sahip olduğum sorun, tüm kelimeleri eşlemede birleştirip boşlukları kaldırmasıdır. Kimse bana ek olanı söyleyebilmemde yardımcı olabilirse veya komut dosyasındaki kelimeleri birleştirmekten sakınmak için eksiklerim varsa.Perl Komutu Eşlemede Boşlukları Kaldırıyor
use strict;
my $find = '^M0|MT';
my $match = 0;
open (NEW, ">", "Output.txt") or die "could not open:$!";
open (FILE, "<", "File.txt") or die "could not open:$!";
while (<FILE>) {
chomp;
if ($match){
$match = 0;
s/\s+//g;
print NEW "$_\n";
}
if (/$find/){
$match = 1;
print NEW "$_"
}
}
close (FILE);
close (NEW);
Dosya Örnek
U# mul acc UNIT # HAS MULTIPLE ACCOUNTS FAIL
Çıktı Örneği (şu anda senaryom neler oluyor)
U#mulaccUNIT#HASMULTIPLEACCOUNTSFAIL
\/\ s + // g; 'satırında ne yapmaya çalışıyorsunuz? – ThisSuitIsBlackNot
Sağladığınız kod, örnek giriş için iddia ettiğiniz çıktıyı üretmiyor. Boş dosya üretir. Bunun nedeni, örnek File.txt dosyasında bulunmayan '^ M0 | MT' için arama yapmaktır. Örnek dosyayı, normal ifadeyle eşleşecek şekilde değiştirmek, yine de hak talebinizin çıktısını üretmez. Bunun yerine, orijinal satır Output.txt dosyasına (yeni satır eksikken) kaydedilir. – bart
özel bilgiler nedeniyle ilk satırını kaldırdım, bunun için üzgünüm, genel bir satır eklemeliydim. (/ $ Find /) seçeneğimde, NEW yazısını nasıl ayarlayacağımı nasıl belirlerim, sadece karakterler ilk satırın sütunlarıyla eşleşiyorsa NEW yazdırır mı? @bart – PhoenixJay