2010-06-24 6 views
5

LineFeed.sh adlı bir kabuk dosyamız var. Bu satır, bir Satır Besleme Dönüşü (LF) Satırbaşı İadesi + Satır Besleme'ye dönüştürülüyor. Aynı pencerede bir toplu iş dosyası tarafından yapılmasını istiyoruz. Mümkün mü?toplu iş dosyası + dönüşümü LF - CR + LF için

Sen this Wikipedia page üzerinde bir yol bulabiliriz

E_WRONGARGS=65 
cat OutputList|while read -r Line 
do 
if [ -z "$Line" ] 
then 
echo "Usage: `basename $0` filename-to-convert" 
exit $E_WRONGARGS 
fi 
NEWFILENAME=$Line.unx 
CR='\015' # Carriage return. 
     # 015 is octal ASCII code for CR. 
     # Lines in a DOS text file end in CR-LF. 
     # Lines in a UNIX text file end in LF only. 
tr -d $CR < $1 > $NEWFILENAME // here its deleting CR but i need to append LF 
# Delete CR's and write to new file. 
done 
echo "Original DOS text file is \"$1\"." 
echo "Converted UNIX text file is \"$NEWFILENAME\"." 
exit 0 
+0

http://www.google.com/search?q=unix2dos.bat – Heinzi

+2

@Heinzi: http://meta.stackexchange.com/questions/5280/embrace-the-non-googlers – Joey

+0

@Johannes: Aslında , yorumum sadece google sorusunu değil, bir cevap içeriyordu. Evet, aşırı özlü bir hal alıyordum; ayrıntılı sürüm şöyle olurdu: "Bunu kendiniz yapmanıza gerek yok, tam olarak ne istediğinizi yapan unix2dos adlı bir betik var ve genellikle" unix2dos.bat "olarak adlandırılan Windows bağlantı noktaları var. Eğer bu anahtar kelime için Google kullanıyorsanız indirmek için çok kaynak bulacaksınız. " (Yine de, ben senin noktası, bağlantı için teşekkürler.) – Heinzi

cevap

13

Linux kabuk dosyası:

TYPE unix_file | FIND "" /V > dos_file 

Eğer gelen okuyorsanız aynı dosyaya çıktı yönlendirmek değil unutmayın. Bu hemen hemen tüm sistemler ve kabuklar için geçerlidir, bu nedenle ek bir yeniden adlandırma gereklidir. Buradaki anahtar, type numaralı telefonun LF satır sonlarını okumasını ve find'un bunları nasıl CRLF'ye dönüştüreceğini bilmesidir. type tek başına çıktı ile hiçbir şey yapmaz (bunun nedeni, dosya içeriğini basitçe dağıtan bir komutun olması iyi değildir :-)).

+3

Amacınız mı? – Joey