2016-03-28 26 views
1

SQL Server 2008'de toplu yükleme için bir xml biçim dosyası var. örneğini TERMINATOR="\n" ile değiştirmem gerekiyor. Komut satırı hizmetini FART.exe kullanmaya çalışıyorum. Nasıl denediğim önemli değil, karakterleri tanımak için gereken yardımı alamıyorum. r n (literal) n, FART.exe'yi kullanarak nasıl değiştirilir?

Ben bulmak dize tarak gibi geçen denenmiş ve dize yerine adres:

\r\n \n 
"\r\n" "\n" 
""\r\n"" ""\n"" 
^\r^\n ^\n 
TERMINATOR=""\r\n"" TERMINATOR=""\n"" 
TERMINATOR=""^\r^\n"" TERMINATOR=""^\n"" 

ve çok, çok daha fazla kombinasyon. DOS komutlarından kaçmakla ilgili her yazı bana farklı bir şey anlatıyor ve hepsini şanssız olarak denedim. Gerçekten garip olan şey, sadece \r\n \n kullanarak değil, yapmak istediklerimi yapmaz (değişmezleri değiştirir), ancak dosyadaki her satırın sonunda satır başı + satır besleme karakterlerini değiştirmez.

Düzenlemem gereken biçim dosyası. Ben kırmızı altı çizili ettiğiniz satır bir soruna neden olan inanıyoruz:

komut penceresi çıkışını Jrepl aramasını.

fart yourFile.xml \r\n \n 

için sadece içinde değiştirin:

cevap

1

sadece kullanım, \n tüm \r\n değişmezleri değiştirmek için: Bu yarar, diğer ekran görüntüsünden kırmızı altı çizili çizgi ile bir sorunu var aşikardır daha büyük dize TERMINATOR="\r\n" sonra kullanın:

fart -C yourfile.xml TERMINATOR=\x22\\r\\n\x22 TERMINATOR=\x22\\n\x22 

Benkullanmayı tercih- Normal ifadeleri kullanabilmesi için FART'tan çok daha güçlüdür, ayrıca bir dizi ek gelişmiş özelliği vardır. FART'a göre tek sınırlama, bir seferde yalnızca bir dosyayı işleyebilmesidir.

\n tüm \r\n değişmezleri değiştirmek için:

jrepl "TERMINATOR=\q\\r\\n\q" "TERMINATOR=\q\\n\q" /x /l /f yourFile.xml /o - 

veya normal bir ifade kullanarak:

jrepl \r\n \n /l /f yourFile.xml /o - 

\\ olarak bir hazır arama alıntı \q olarak atlanmış dize ve ters eğik çizgi kullanarak daha spesifik olmak gerekirse :

jrepl "(TERMINATOR=\q)\\r(?=\\n\q)" "$1" /x /f yourFile.xml /o - 
+0

Merhaba Dbenham. Maalesef denediğim ilk şey "fart yourFile.xml \ r \ n \ n" idi ve işe yaramadı. Sonuç "0 dosya (lar) 'ında değiştirildi. Tek bir dosyada bir dosyayı bulup değiştirmem gerekiyor, bu yüzden jrepl komut satırı yardımcı programını şimdilik bunun yerine deneyeceğim." yardım! – Ognennyy

+0

@Ognennyy - Hmmm Bu garip, çünkü FART ile test ettim ve benim için işe yaradı gibi görünüyordu. Ama JREPL – dbenham

+0

ile iyi şanslar Ben yardım edeceğini umarım iki ekran görüntüledim. İçinde bir satır bulunan dosya (Terminator = "\ r \ n") sonra jrepl \ r \ n \ n/l/f "test.txt"/o "test_new.txt" çağrısı yapın, doğru şekilde çalışıyor ve (Terminator = "\ n") Ancak, Jrepl xml dosyamdan hoşlanmıyormuş gibi görünüyor .. Ekran resmime göz atın xml dosyasında bulduğum satır iki bağlantı içeriyor.Çıktıyı stdout'a gönderdiğimde cmd penceresinin diğer ekran görüntüsü, orada bir sorun olduğunu açıkça gösterir. Sizce ne düşünüyorsun? Jrepl tam bir şişmiş xml dosyası ile çalışmayacak mı? – Ognennyy