Đây là một khái niệm rất cơ bản, nhưng một cái gì đó tôi chưa bao giờ có thể nói rõ điều đó. và tôi muốn thử đánh vần nó và xem tôi đã đi sai ở đâu.Ký tự dòng mới là gì - ' n'
Nếu tôi phải làm thế nào, tôi sẽ xác định "ký tự dòng mới" như thế nào. nói rằng nếu tôi tạo một tệp mới trong unix (hoặc cửa sổ), thì tệp lưu trữ thông tin "cuối dòng" bằng cách chèn một ký tự đặc biệt vào tệp được gọi là "ký tự dòng mới". Nếu vậy, giá trị ascii của nó là gì? Tôi nhớ rằng trong các chương trình C, tôi đã kiểm tra ký tự đọc với giá trị '\ n'. Và tại sao điều này gây nhầm lẫn cho 2 nhân vật đại diện cuối của các nhân vật dòng ..
bash$ cat states
California
Massachusetts
Arizona
Say, tôi muốn chèn một không gian ranh giới giữa các dòng và muốn có một đầu ra có dạng: đầu ra mong muốn:
California
Massachusetts
Arizona
bash$sed -e 's/\n/\n\n/g' states does not work.
Tại sao tôi không thể xử lý "ký tự dòng mới" ở đây giống như tôi sẽ đối xử với bất kỳ ký tự nào khác và chạy một cái gì đó như lệnh trên. (Tôi hiểu rằng người ta có thể nói rằng đây là một vấn đề cú pháp của sed, nhưng có thể xin giải thích trực giác đằng sau không cho phép điều này, để tôi có thể thoát khỏi sự nhầm lẫn của tôi. tôi không thể sử dụng:.?% s/\ n/\ n \ n/g tại sao nên
tôi có cần phải thoát ra thêm \ n bằng cách sử dụng một dấu chéo ngược trong sed và từ bên trong vim ?.
Cảm ơn ,
Jagrati
* Và tại sao điều này gây nhầm lẫn 2 ký tự đại diện cho các ký tự cuối dòng. * - Đối với chương trình, nó không thực sự là hai ký tự - đó là một ký tự "thoát" bằng dấu gạch chéo ngược. Trình biên dịch hiểu rằng nó đại diện cho một giá trị khác với một ASCII bình thường ** 'n' **. Thoát ký tự thường được sử dụng trong nhiều ngôn ngữ và nền tảng để thể hiện các ký tự mà bạn có thể không đại diện. – GalacticCowboy
Làm quen với những gì Galactic Cowboy đã nói, '\ n' không phải là ký tự dòng mới, nó là biểu tượng * đại diện * ký tự dòng mới trong ký tự C và chuỗi ký tự (và trong một số ngữ cảnh khác). Tất nhiên, ký tự dòng mới thực sự trong mã nguồn sẽ ẩn, ngoại trừ việc nó sẽ kết thúc dòng. Đây là lý do tại sao bạn gặp vấn đề với sed: '\ n' không đại diện cho ký tự dòng mới trong chương trình đó. –
Tôi thề tôi đã đọc "Nhân vật mới là gì - '\ n'", vì vậy mệt mỏi – Enriquev