Đây là sed cơ bản. Sử dụng sed không khó một khi bạn biết các biểu thức thông thường . Một sed
lệnh cơ bản để đọc đầu vào và tước từng phần <
và phần sau nếu nó tồn tại, sau đó in dòng (có thể được sửa đổi):
$ echo 'foo<....' | sed 's/<.*//'
foo
sed
sử dụng các biểu thức chính quy , văn bản trang thủ công có liên quan cho sed(1)
lệnh áp dụng cho lệnh trên:
s / regapi / thay thế /
Cố gắng khớp regrec với không gian mẫu. Nếu thành công, thay thế phần đó phù hợp với thay thế. Sự thay thế có thể chứa ký tự đặc biệt & để chỉ phần đó của không gian mẫu phù hợp và thoát đặc biệt \ 1 đến \ 9 để chỉ các biểu thức phụ phù hợp tương ứng trong biểu thức chính quy
Thay thế bằng cách sử dụng cut
( trang thủ công chocut(1)
), "chia chuỗi theo <
và lấy trường 1
thứ.
echo 'foo<....' | cut -d'<' -f1
Thay thế bằng cách sử dụng grep
, "chỉ khớp mọi thứ có chứa các ký tự của tập a thành z (không phân biệt chữ hoa chữ thường)" ( trang thủ công củagrep(1)
):
echo 'foo<....' | grep -io '[a-z]*'
(lưu ý: Tôi đã sử dụng quyền tự do [a-z]*
, nghĩa là "không có hoặc nhiều lần xuất hiện của một chữ cái", bởi vì grep sẽ không trả về một dòng trống khi sử dụng -o
tùy chọn)
Thay thế bằng cách sử dụng awk, sử dụng cùng một ý tưởng về cut
( trang thủ công củaawk(1)
):
echo 'foo<....' | awk -F '<' '{print $1}'
<
và chỉ xuất ra phần tử đầu tiên trên mỗi dòng?