Sed - Mẹo và thủ thuật

Sed, hay Stream Editor như thường được biết đến, chủ yếu được sử dụng để phân tích văn bản và chuyển đổi bất kỳ văn bản nào trong tập lệnh. Tính năng này của Sed được sử dụng trong các tập lệnh Shell để tạo mã linh hoạt và động. Biết các mẹo và thủ thuật phổ biến có thể giúp người dùng tối ưu hóa mã của họ đến một mức độ lớn. Người ta có thể thực hiện các biến đổi tùy chỉnh của văn bản, chẳng hạn như thay thế một văn bản này bằng văn bản khác dựa trên số lần xuất hiện, hiển thị các dòng cụ thể và loại bỏ khoảng trắng hoặc khoảng trống. Người ta cũng có thể sử dụng các mẹo và thủ thuật cho các mục linh tinh như tham gia nhiều dòng hoặc thay thế các ký tự đặc biệt từ các dòng cụ thể.

= [Sed] Mẹo và thủ thuật

Thay thế

Thay thế "foo" bằng "thanh" trên mỗi dòng

Chỉ có lần xuất hiện đầu tiên

sed 's / foo / bar /'

Chỉ dành cho trường hợp thứ 3

sed 's / foo / bar / 3'

Tất cả các lần xuất hiện

sed 's / foo / bar / g'

Ngay trước khi xảy ra lần cuối

sed 's / \ (. * \) foo \ (. * foo \) / \ 1bar \ 2 /'

Chỉ trường hợp cuối cùng

sed 's / \ (. * \) foo / \ 1bar /'

Thay thế "foo" bằng "thanh" chỉ các dòng có chứa "plop"

sed '/ plop / s / foo / bar / g'

Thay thế "foo" bằng "bar" ngoại trừ các dòng có chứa "plop"

sed '/ ngồi phịch /! s / foo / thanh / g '

Thay thế "Foo" hoặc "foo" bằng "bar" trên mỗi dòng

sed 's / [Ff] oo / bar / g'

Thay thế "xanh" hoặc "trắng" hoặc "đỏ" bằng "xanh"

sed 's / xanh \ | trống \ | đỏ / xanh / g '

Trưng bày

Dòng thứ 1 (đầu -1)

quyến rũ

5 dòng đầu tiên (đầu -5)

sed'5 q '

sed'1, 5! d '

Dòng cuối cùng (đuôi -1)

sed-n '$ p'

sed '$! d "

5 dòng cuối cùng (đuôi -5)

sed-e: ae '$ q, N, 6, $ D; ba'

2 dòng cuối cùng (đuôi -2)

sed '$! N; $! Đ '

Chỉ các dòng khớp với một lý do hoặc một biểu thức thông thường

sed-n '/ mẫu / p'

sed '/ regrec /! d '

Chỉ những dòng trùng khớp không phải là một lý do hoặc một biểu thức thông thường

sed-n '/ mẫu /! p '

sed '/ regrec / d'

Dòng đứng trước một mẫu hoặc biểu thức chính quy

sed-n '/ mẫu / (g; 1! p;) h'

Dòng theo mẫu hoặc biểu thức chính quy

sed-n '/ regapi / (n, p;)'

Tẩy

=== Dung lượng và tab ==

Xóa khoảng trắng và tab

Ở đầu dòng

sed / s [^ t] * / /

sed 's / ^ \ s * / /' # Sử dụng tham số "\ s"

Cuối dòng

sed 's / [\ t] * $ //'

Ở đầu và cuối dòng

sed 's / ^ [\ t] * //; s / [\ t] * $ // '

Dòng trống

Xóa các dòng trống

Tất cả các dòng trống

sed '/ ^ $ / của

sed '/./! của

Chỉ những người ở trên cùng

sed '/./, $! của

sed-nr '/./, $ /(.*)/ s \ 1 / p' # cảm ơn bạn

Chỉ những người ở cuối

sed-e: ae '/ ^ \ n * $ / ($ d N; ba'-e') '

Khoảng thời gian đều đặn

Loại bỏ một dòng đều đặn

Tất cả các cặp dòng

sed'1 ~ 2d '

Tất cả các dòng lẻ

sed'2 ~ 2d '

Mỗi n dòng từ dòng n

sed'3 ~ 2d '# 2 Tất cả các dòng từ dòng 3

Linh tinh

Tham gia dòng

Đính kèm dòng 2 by 2

sed '$! N s / \ n / / '

Đính kèm 3 dòng bằng 3

sed '$! N s / \ n //; $! N s / \ n / /; '

Nếu một dòng kết thúc bằng dấu gạch chéo ngược (\), hãy thêm dòng sau và thay thế dòng cuối (\ n) bằng khoảng trắng

sed-e: ae '/ \ \ $ / N s / \ \ \ n / /; tôi '

Nếu một dòng bắt đầu bằng dấu bằng (=), hãy thêm nó vào dòng trước đó và thay thế dấu bằng (=) bằng dấu cách

sed-e: ae '$! N s / \ n = / /; ta'-e 'P, D'

Bài TrướC TiếP Theo Bài ViếT

Lên Trên LờI Khuyên