2011-10-05 41 views
5

Tôi đang cố xóa một nhóm^K khỏi một tệp trong linux cho lớp nhưng mọi thứ tôi đã cố gắng không hoạt động.xóa các ký tự đặc biệt khỏi một tệp trong linux

dòng vì vậy tôi con mèo một tập tin memo.txt và nó đã tăng gấp đôi cách nhau

tôi ít các tập tin và nó có^K sau mỗi dòng

Tôi cố gắng để loại bỏ các^K và đầu ra nó vào một tập tin mới

tôi đã thử

cat memo.txt | tr -d "\n" > memo.new 
cat memo.txt | tr -d "^K" > memo.new 

và một số chức năng sed khác.

+3

Mỗi nhân vật đều đặc biệt theo cách riêng của mình. –

Trả lời

5

Bạn có thể muốn thử một cái gì đó như thế này:

tr -d '\013' <memo.txt> memo.new 

013 là giá trị bát phân cho ký tự ^K.

+0

Cảm ơn bạn đã trả lời và không chỉ một số trang người đàn ông. Tôi biết điều này là dành cho trường học nhưng tôi đã cố gắng. – BillPull

+0

Bạn cũng có thể lấy giá trị bằng cách nhấn Ctrl + v, sau đó nhấn Ctrl + K. Ctrl + v làm cho đầu vào tiếp theo cho giá trị chữ của nó thay vì có hiệu ứng bình thường của nó – Daenyth

+0

@ Jonathan Callen, làm thế nào u tìm thấy giá trị bát phân của^K? –

1

Có một cái nhìn tại địa chỉ:

man strings 

đó là IMHO chính xác những gì bạn muốn ...

+2

Bạn cảm thấy cần phải phá hủy nội dung chỉ để xóa hoàn toàn một ký tự đơn? –

0

Tôi nghĩ câu trả lời của ABCD sẽ hoạt động. Nhưng nếu nó không hoạt động, hãy thử như sau:

tr -d "`echo -e '\013'`" <memo.txt> memo.new 

Các lệnh echo nhúng sẽ xuất thực tế nhân vật^K, vì vậy tr sẽ biết chính xác những gì để xóa.

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