Sed: Học Shell Scripting sử dụng lệnh Sed Terminal

Sed: Học Shell Scripting sử dụng lệnh Sed Terminal

Sed: Học Shell Scripting sử dụng lệnh Sed Terminal

Lệnh "sed" trong Hệ điều hành Miễn phí thuộc loại GNU / Linux, nó là một lệnh rất linh hoạt, vì Nó được coi là một trình soạn thảo văn bản theo định hướng "dòng chảy" thay vì "tương tác" như những loại điển hình, vì nó chấp nhận một tệp hoặc đầu vào tiêu chuẩn làm đầu vào, sau đó xử lý từng dòng và kết quả được gửi đến đầu ra tiêu chuẩn. Điều đó có nghĩa là, SED (Stream EDitor) cho phép chúng tôi sửa đổi nội dung của các dòng khác nhau của tệp dựa trên một loạt lệnh hoặc một tệp lệnh.

Nói chung, lệnh «sed» được sử dụng như một bộ lọc, vì nó đọc từng dòng của mục nhập dữ liệu của bạn và sau đó thực hiện các hành động được yêu cầu thường là đọc, trích xuất, sửa đổi và hiển thị hoặc lưu. Mặc dù sức mạnh của nó là như vậy Ngoài ra, nó cho phép chúng tôi một cách thoải mái, xóa các dòng, bản ghi hoặc thay thế các chuỗi ký tự trong các dòng của tệp.

Giới thiệu về lệnh "sed"

Ya en otras publicaciones anteriores en DesdeLinux hemos hablado y mostrados ejemplos sobre el uso de dicho comando, chẳng hạn như: Cách xóa các dòng cụ thể khỏi tệp ... y Với đầu cuối: Sử dụng Biểu thức chính quy II: Thay thế, vì vậy lần này chúng ta sẽ trực tiếp xem một chút nâng cao hơn và chỉ là những ví dụ thực tế sử dụng nó.

Về cơ bản, lệnh "sed" có cú pháp sau:

sed comandos_sed archivo

Đâu "Command_sed" tương ứng với một hoặc nhiều thông số kỹ thuật về việc phải làm với các dòng được đọc từ "kho lưu trữ".

Việc sử dụng rộng rãi hơn để lại cho chúng ta cú pháp sau:

sed [-ns] '[direccion] instruccion argumentos'

Trường hợp:

Định dạng sử dụng lệnh SED

Ví dụ thực tế

Liệt kê các tệp / thư mục trong một đường dẫn

Dòng lệnh hữu ích có thể được sử dụng để liệt kê nội dung của một đường dẫn X được chỉ định và sau đó phát hiện / đếm / lọc một mục được tìm kiếm và chỉ ra một hành động tiếp theo sẽ được thực hiện.

ls -l | awk '{ print $NF }' | sed 1d

Ví dụ:

Ví dụ 1: Lệnh SED - Shell Scripting

Biến thể khác sử dụng lệnh "sed" rất hữu ích:

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename

Ví dụ 4: Lệnh SED cho Shell Scripting

Tạo một dãy số

Hiển thị trên màn hình hoặc lưu trong tệp một chuỗi số (hoặc bất kỳ đầu vào nào khác) được tạo nhưng theo chiều ngang (tuyến tính) chứ không phải theo chiều dọc để sau này có thể đọc cho các quy trình khác.

seq 100|tr '\n' ' '|sed 's, $,\n,g'

Ví dụ 2: Lệnh SED cho Shell Scripting

Ví dụ tương tự có thể được thực hiện bằng cách kết hợp lệnh «khát " với "Printf" như hình bên dưới:

printf '%s ' {1..100}|sed 's/ $/\n/'

Ví dụ 3: Lệnh SED cho Shell Scripting

Xóa tệp có loại trừ

Xem xét kỹ lưỡng đường dẫn hệ thống tệp để tìm các mẫu tệp để loại trừ và sau đó xóa phần còn lại của nội dung. Rất hữu ích để làm sạch chính xác và cẩn thận.

find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm

Ví dụ 5: Lệnh SED cho Shell_Scripting

Tạo địa chỉ MAC ảo

Bước này có thể hữu ích cho các nhiệm vụ bảo mật hoặc bảo vệ máy tính khi duyệt các trang web nguy hiểm hoặc thực hiện các tác vụ hack.

MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC

Hiệu ứng tương tự có thể đạt được bằng cách sử dụng lệnh "sed" kết hợp với các lệnh khác, như được hiển thị bên dưới:

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1

Ví dụ:

Ví dụ 7: Lệnh SED cho Shell Scripting

Tạm thời thay đổi Lời nhắc đầu cuối

Điều này có thể giúp chúng tôi tạm thời chèn các tham số có thể hữu ích cho chúng tôi trong khi chúng tôi thực hiện một hoạt động đặc biệt. Trong ví dụ này, chúng tôi sẽ chỉ thay đổi cách hiển thị lời nhắc.

export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "

Ví dụ 8. Lệnh SED cho Shell Scripting

Quản lý đầu ra của Lệnh "ps"

Lệnh rất thực tế để cho phép định dạng đầu ra của lệnh «ps», tức là những gì nhận được từ Trình quản lý Quy trình Đầu cuối.

sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"

Ví dụ:

Ví dụ 9: Lệnh SED cho Shell Scripting

Điều này có thể được áp dụng cho các quy trình theo phần trăm bộ nhớ được sử dụng:

sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"

Những ví dụ về dòng lệnh sử dụng lệnh "sed", tôi hy vọng bạn sẽ thấy nó rất hữu ích. Và chúng được sử dụng trực tiếp từ bảng điều khiển hoặc gián tiếp bằng cách chèn chúng vào một tập lệnh (tác vụ tự động).

Trong bài tiếp theo về Shell Scripting, chúng ta sẽ khám phá các lệnh khác.

Nếu bạn muốn tìm hiểu thêm một chút về lệnh "sed", hãy truy cập liên kết này "Hướng dẫn và Hướng dẫn ngắn gọn cho Unix và Linux"Hoặc là"Sử dụng cơ bản»Và nếu bạn muốn tìm hiểu thêm về Shell Scripting trong Blog của riêng chúng tôi, bạn có thể xem các ấn phẩm khác của chúng tôi về chủ đề này, bằng cách nhấp vào đây: Viết kịch bản DesdeLinux.


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.