My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# ----------------------------------------------------------------------------
# Converte arquivos texto no formato Windows/DOS (CR+LF) para o Unix (LF).
# Obs.: Também remove a permissão de execução do arquivo, caso presente.
# Uso: zzdos2unix arquivo(s)
# Ex.: zzdos2unix frases.txt
# cat arquivo.txt | zzdos2unix
#
# Autor: Aurelio Marinho Jargas, www.aurelio.net
# Desde: 2000-02-22
# Licença: GPL
# ----------------------------------------------------------------------------
zzdos2unix ()
{
zzzz -h dos2unix "$1" && return

local arquivo
local tmp="$ZZTMP.dos2unix.$$"
local control_m=$(printf '\r') # ^M, CR, \r

# Sem argumentos, lê/grava em STDIN/STDOUT
if test $# -eq 0
then
sed "s/$control_m*$//"

# Facinho, terminou já
return
fi

# Usuário passou uma lista de arquivos
# Os arquivos serão sobrescritos, todo cuidado é pouco
for arquivo
do
# O arquivo existe?
zztool arquivo_legivel "$arquivo" || continue

# Remove o \r
cp "$arquivo" "$tmp" &&
sed "s/$control_m*$//" "$tmp" > "$arquivo"

# Segurança
if [ $? -ne 0 ]
then
echo "Ops, algum erro ocorreu em $arquivo"
echo "Seu arquivo original está guardado em $tmp"
return 1
fi

# Remove a permissão de execução, comum em arquivos DOS
chmod -x "$arquivo"

echo "Convertido $arquivo"
done

# Remove o arquivo temporário
rm -f "$tmp"
}

Change log

r710 by aureliojargas on Mar 29, 2012   Diff
SEGURANÇA: $1 colocado entre aspas na
chamada padrão zzzz -h de todas as
funções.
Go to: 
Sign in to write a code review

Older revisions

r668 by aureliojargas on Mar 28, 2012   Diff
lint: removendo espaços inúteis.
r655 by aureliojargas on Mar 23, 2012   Diff
s/Aurélio/Aurelio/ *
r486 by aureliojargas on May 20, 2011   Diff
COMBO: Arrumadas inconsistências de
espaços em branco na indentação de
várias funções. Foi usado o script
'alinhamento' para encontrar os
problemas. Estas alterações não mudam
...
All revisions of this file

File info

Size: 1371 bytes, 56 lines
Powered by Google Project Hosting