2010-06-24 29 views
5

Abbiamo un file di script di shell denominato LineFeed.sh che svolge una funzione di conversione di un avanzamento di riga (LF) in Ritorno a capo + Avanzamento riga. Vogliamo che lo stesso sia fatto da un file batch in Windows. È possibile?file batch + convertire LF in CR + LF

file di shell Linux

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: In realtà , il mio commento non ha solo google la domanda, ma contiene una risposta. Sì, ero troppo conciso; la versione dettagliata sarebbe: "Non devi farlo tu stesso, c'è uno script chiamato unix2dos che fa esattamente quello che vuoi e ci sono le porte di Windows disponibili, di solito chiamate' unix2dos.bat'. Se usi google per quella parola chiave, troverai molte fonti per scaricarlo. " (Ancora, ho capito, grazie per il collegamento.) – Heinzi

risposta

13

È possibile trovare un modo su this Wikipedia page:

TYPE unix_file | FIND "" /V > dos_file 

ricordare che non è possibile reindirizzare l'output sullo stesso file che si sta leggendo. Questo vale per praticamente tutti i sistemi e le shell, quindi è necessario un ulteriore cambio di nome.

La chiave qui è che type sa come leggere le terminazioni di linea LF e find quindi convertirle in CRLF. type da solo non farà nulla con l'output (si suppone, perché avere un comando che semplicemente scarica il contenuto del file che fa casino con loro non è buono :-)).

+3

Il tuo punto di essere? – Joey

Problemi correlati