2016-03-22 18 views
0

Yeni satırları Perl kullanarak bir dosyada tmp değiştirmeye çalışıyorum ama aşağıda gösterildiği gibi beklenmedik davranışlar alıyorum.Değiştirmek için, yeni satırlar beklendiği gibi çalışmaz

user$ cat tmp 
aa 
bb 
cc 


user$ perl -p -e 's/\n/==/g' tmp 
aa==bb==cc== 

user$ perl -p -e 's/\nbb/==/g' tmp 
aa 
bb 
cc 

Neden çıkış yerine

aa== 
cc 

değil mi?

+0

deneyin 'perl -pe -0777' –

+0

@AvinashRaj' perl -p -e -0777 'ler/\ nbb/==/g' tmp: Sadece bir satır olarak dosyanın tamamını okumak için -0777 seçeneğini kullanın ' S/\ nbb/==/g açılamıyor: Böyle bir dosya veya dizin yok. – user13107

+1

'perl -0777 -p -e ...' – ysth

cevap

6

-p bayrağı gibi kodunuzu döngüler burada sorun: Her hat için

LINE: 
    while (<>) { 
    ...  # your program goes here 
    } continue { 
    print or die "-p destination: $!\n"; 
    } 

Yani regexp'in çalışır.

perl -p -0777 -e 's/\nbb/==/g' tmp 
İlgili konular