2010-04-08 17 views

Respuesta

15
sed 's/..$//' filename.txt 
+0

¿Qué pasa si uno quiere eliminar los últimos 1232 caracteres? – qed

+4

Entendido: 'sed 's /. \ {1232 \} $ //' filename' – qed

2

Segunda respuesta de BenV. Sin embargo, usted puede asegurarse de que sólo se quita^A por:

sed 's/^A^A$//' <file> 

Además de eso, para saber qué^A es, hice lo siguiente:

% echo -n '^A' |od -x 
0000000 0001 
0000001 

% ascii 0x01 
ASCII 0/1 is decimal 001, hex 01, octal 001, bits 00000001: called ^A, SOH 
Official name: Start Of Heading 

(querían añadir al menos un comentario, pero no lo hace citando correctamente)

+1

Tenga en cuenta que debe escribir Ctrl-A, no literal^y literal A. –

0

también se puede usar awk

awk '{sub(/..$/,"")}1' file 

también puede utilizar la cáscara

while read -r line; do echo ${line:0:(${#line}-2)}; done<file 

sin embargo, si usted está hablando de deshacerse de las nuevas líneas de DOS (es decir, \ r \ n), puede utilizar el comando dos2unix

Cuestiones relacionadas