2010-04-08 80 views

Trả lời

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

gì nếu ai muốn tháo 1232 ký tự cuối cùng? – qed

+4

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

2

Câu trả lời thứ hai của BenV. Tuy nhiên bạn có thể chắc chắn rằng bạn chỉ loại bỏ^A bằng:

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

Bên cạnh đó, để tìm hiểu những gì^Một là, tôi đã làm như sau:

% 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 

(muốn thêm làm một lời nhận xét nhưng nó không làm trích dẫn đúng)

+1

Lưu ý rằng bạn cần phải gõ Ctrl-A, không phải chữ^và chữ A. –

0

bạn cũng có thể sử dụng awk

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

bạn cũng có thể sử dụng vỏ

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

tuy nhiên nếu bạn đang nói về việc thoát khỏi hệ điều hành DOS dòng mới (ví dụ: \ r \ n), bạn có thể sử dụng dos2unix lệnh

Các vấn đề liên quan