|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Identificare il tipo di "EOL"
problema forse banale ma che non riesco a risolvere.
voglio testare una serie di file di testo per sapere quali usano il terminatore di linea DOS (CR+LF) e quale quello unix (LF). il comando "file" applicato su file di testo lo dice, ma ad esempio su script di shell o altri tipi di file no. Con il "vi" posso saperlo, ma cercavo qualcosa di non interattivo. idee? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Potresti usare qualcosa di simile al seguente:
Codice:
#!/bin/env python import sys if "\r\n" == file(sys.argv[1]).readline()[-2:]: sys.exit(1) sys.exit(0)
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
col grep non lo puoi fare perchè non hai maniera di testare il terminatore di riga, ma solo il contenuto della stessa.
avevo pensato anch'io usare un paio di righe di codice se non trovavo una soluzione da shell, grazie per l'esempio. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1175
|
Il grep permette di cercare stringe in esadecimale, con la sintassi \xHH?
Se quel valore viene espanso dalla shell si potrebbe fare uno script tramite il quale, se viene trovato il valore 0D0AHex (=CRLF) allora il file e' di MS-DOS, altrimenti e' UNIX.
__________________
Enermax Staray CS-046 ECA3170-BL, Cooler Master RS-700-AMBA-D3, ASUS P6X58D-E, Core i7 950, Kingston 6GB DDR3 1600 HyperX, Gainward GTX 460 1GB GS, LG BH10LS30, 1TB WD1002FAEX, 2TB WD20EARS, 3TB WD30EZRX, 4TB WD40EFRX, 2x2TB WDBAAU0020HBK, Samsung SCX-3200, Netgear DGN2200 [Debian 7.0 Wheezy] Installazione, consigli e trucchi |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
è vero, ma che io sappia non permette di testare il terminatore di riga. in altra parole la ricerca esadecimale la fa, ma all'interno del contenuto della riga (e quindi non è applicabile al problema). dopo comunque faccio una prova e verifico
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:37.



















