s:$:__:
s:...:& :g
s: _*$::
Hãy thử trực tuyến!
Nó có một chút khó khăn liên quan đến đầu vào chuỗi trống, vì sed không có nghĩa là giá trị giả. Vì vậy, để giải quyết vấn đề này, tôi cung cấp cho bạn hai cách giải thích về các quy tắc để xác thực việc gửi của tôi:
A. Về cơ bản, bạn không cung cấp gì làm đầu vào, thậm chí không phải là một dòng mới (vì đây là trường hợp với tất cả các ví dụ, bao gồm cả tệp 6 Mb đó).
Sử dụng:
echo -n ""|sed -f script
Đầu ra: không có gì được in, vì sed thậm chí không chạy tập lệnh mà không có đầu vào.
B. Người ta có thể coi là giá trị giả cho sed là một chuỗi duy nhất, nghĩa là chỉ được trả về khi đầu vào là một chuỗi rỗng.
Sử dụng:
echo ""|sed -f script
Đầu ra:
__
Tôi thích cách giải thích đầu tiên hơn rất nhiều, vì tôi tin rằng nó là gần nhất với quy tắc dự định, nhưng cách giải thích cuối cùng sẽ giúp nếu bạn chạy tập lệnh bằng liên kết TIO đó.