2010-04-08 8 views

Antwort

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

verwenden Was passiert, wenn man die letzten 1232 Zeichen entfernen möchte? – qed

+4

Verstanden: 'sed 's /. \ {1232 \} $ //' Dateiname' – qed

2

Zweite BenV's Antwort. Allerdings können Sie sicherstellen, dass Sie nur entfernen^A von:

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

Zusätzlich zu, dass, um herauszufinden, was^A ist, habe ich die folgenden:

% 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 

(wollte so hinzufügen ein Kommentar, aber es zitierte macht nicht richtig)

+1

Beachten Sie, dass Sie Strg-A, kein Literal^und ein Literal A eingeben müssen. –

0

können Sie auch awk verwenden

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

Sie auch die Shell verwenden können

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

aber wenn Sie sprechen loszuwerden DOS Zeilenumbrüche (dh \ r \ n), können Sie dos2unix Befehl

Verwandte Themen