Cách thay thế dòng mới bằng dấu phẩy bằng lệnh `sed`

How Replace Newline With Comma Using Sed Command



Bất kỳ ký tự hoặc chuỗi nào cũng có thể được thay thế bằng cách sử dụng lệnh `sed`. Đôi khi, chúng tôi cần thay thế ký tự dòng mới ( n) trong tệp bằng dấu phẩy. Trong bài viết này, chúng tôi sử dụng lệnh `sed` để thay thế n bằng dấu phẩy.

Sử dụng `sed` để thay thế n bằng dấu phẩy

Nhiều vấn đề có thể xảy ra khi thay thế n bằng dấu phẩy. Theo mặc định, mọi dòng đều kết thúc bằng n khi tạo tệp. Lệnh `sed` có thể dễ dàng tách trên n và thay thế dòng mới bằng bất kỳ ký tự nào. Một dấu phân cách khác có thể được sử dụng thay cho n, nhưng chỉ khi GNU sed được sử dụng. Khi thiếu n ở dòng cuối cùng của tệp, GNU sed có thể tránh in n. Hơn nữa, n thường được thêm vào mỗi đầu ra liên tiếp của `sed`.







Tạo tệp

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách sử dụng lệnh `sed` để thay thế n bằng dấu phẩy. Để làm theo hướng dẫn này, hãy tạo một tệp văn bản có tên Clients.txt với thông tin khách hàng dạng bảng sau.



TÔI Tên E-mail Điện thoại
c01 Md. Rakib [email được bảo vệ] 01856233238
c02 Meher Afroze [email được bảo vệ] 01733536342
c03 Fakrul Ahsan [email được bảo vệ] 01934737248
c04 Helal Uddin [email được bảo vệ] 01534895898
c05 Nusrat Jahan [email được bảo vệ] 01866345254

Ví dụ 1: Thay thế n bằng dấu phẩy bằng -z

Tùy chọn -z được sử dụng để chuyển đổi n thành ký tự rỗng ( 0). Nội dung của tệp được coi là một dòng nếu nó không chứa bất kỳ ký tự rỗng nào. Lệnh `sed` sẽ chuyển đổi dòng mới thành ký tự rỗng và thay thế mỗi n bằng dấu phẩy bằng cách sử dụng mẫu tìm kiếm và thay thế đầu tiên. Ở đây, ‘g’ được sử dụng để tìm kiếm trên toàn cầu cho n. Với mẫu tìm kiếm và thay thế thứ hai, dấu phẩy cuối cùng sẽ được thay thế bằng n.



$con mèoClients.txt

$quyến rũ -Với 's / n /, / g; s /, $ / n /'Clients.txt

Kết quả sau sẽ được tạo ra sau khi chạy các lệnh.





Ví dụ 2: Thay thế n bằng dấu phẩy bằng a, b, $! và N

Lệnh `sed` có thể được sử dụng để thay thế n bằng dấu phẩy bằng cách sử dụng a, b, N và $! . Ở đây, đến được sử dụng để nối các nhiệm vụ, NS được sử dụng để phân nhánh nội dung, n được sử dụng để chuyển sang dòng tiếp theo và $! được sử dụng để ngăn tác vụ thay thế được áp dụng cho dòng cuối cùng. Lệnh sẽ thay thế từng bằng dấu phẩy trừ dòng cuối cùng.



$con mèoClients.txt

$quyến rũ ': a; N; $! ba; s / n /, / g'Clients.txt

Kết quả sau sẽ được tạo ra sau khi chạy các lệnh.

Ví dụ 3: Thay n bằng dấu phẩy sử dụng H, h, d, x và y

Nếu bạn muốn thay thế ) bằng dấu phẩy trong một tệp nhỏ, thì lệnh `sed` sau đây có thể được sử dụng. Ở đây, NS được sử dụng để nối dòng cuối cùng vào văn bản giữ, 1h được sử dụng để sao chép mọi dòng của tệp vào văn bản giữ từ dòng đầu tiên, $! d được sử dụng để xóa tất cả các dòng ngoại trừ dòng cuối cùng, NS được sử dụng để trao đổi văn bản đang giữ và không gian mẫu, và được sử dụng để thay thế mỗi trong văn bản giữ bằng dấu phẩy.

$con mèoClients.txt

$quyến rũ 'H; 1h; $! D; x; y / n /, /'Clients.txt

Kết quả sau sẽ được tạo ra sau khi chạy các lệnh.

Ví dụ 4: Thay n bằng dấu phẩy bằng -n, H, h, g và p

Lệnh `sed` có thể được sử dụng để thay thế với một dấu phẩy với -n tùy chọn này ngăn việc in tự động. Giống như trong ví dụ trước, NS được sử dụng ở đây để nối dòng cuối cùng vào văn bản đang lưu giữ, 1h được sử dụng để sao chép mọi dòng của tệp vào văn bản giữ, $ đề cập đến dòng cuối cùng của tệp, NS được sử dụng để sao chép từ văn bản đang lưu giữ và P được sử dụng để in.

$con mèoClients.txt

$quyến rũ-n'H; 1h; ${g; s / /, / g; p} 'Clients.txt

Kết quả sau sẽ được tạo ra sau khi chạy các lệnh trên.

Ví dụ 5: Thay n bằng dấu phẩy sử dụng H, x, p

H, x và p đã được giải thích trong các ví dụ trước. Biểu thức tìm kiếm và thay thế đầu tiên sẽ thay thế từng bằng dấu phẩy và biểu thức tìm kiếm và thay thế thứ hai sẽ thay thế dấu phẩy ở đầu dòng bằng dấu cách.

$con mèoClients.txt

$quyến rũ-n'H; $ {x; s / n /, / g; s / ^, //; p;}'Clients.txt

Kết quả sau sẽ được tạo ra sau khi chạy các lệnh trên.

Ví dụ 6: Thay n bằng dấu phẩy sử dụng N và `cat`

Lệnh `cat` được sử dụng ở đây để gửi nội dung của tệp đến lệnh` sed`, và n được sử dụng để chuyển sang dòng tiếp theo.

$con mèoClients.txt

$con mèoClients.txt| quyến rũ 'N; s / n /, /'

Kết quả sau sẽ được tạo ra sau khi chạy các lệnh trên.

Phần kết luận

Có thể cần phải thay thế n bằng dấu phẩy để chuyển dữ liệu từ định dạng tệp này sang định dạng tệp khác. Loại thay thế này cũng có thể được thực hiện bằng cách sử dụng các lệnh Linux khác. Nhiều tùy chọn lệnh, chẳng hạn như H, N, h và x, có thể được sử dụng với lệnh `sed` để hoàn thành tác vụ này. Hướng dẫn này trình bày một số cách sử dụng lệnh `sed` để thay thế n bằng dấu phẩy.