cuốn sách gpt4 ai đã làm

linux - tập lệnh shell ksh tìm thấy sự xuất hiện đầu tiên của _ trong một chuỗi và xóa mọi thứ cho đến khi nó xuất hiện

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 04:45:36 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi chưa quen với kịch bản shell. Sử dụng vỏ KSH. Bạn có thể giúp tôi được không?

Chuỗi của tôi tương tự như errorfile101_ApplicationData_2_333.txt. Tôi muốn xóa mọi thứ cho đến lần xuất hiện đầu tiên_.

Đầu ra của tôi phải là ApplicationData_2_333.txt

câu trả lời hay nhất

Đây là một cách tiếp cận đơn giản, giả sử bạn có thể gán chuỗi cho một biến, tức là

str="errorfile101_ApplicationData_2_333.txt"
tiếng vang ${str#*_}

输出

ApplicationData_2_333.txt

# ${str#*_} Toán tử trong phương tiện sẽ loại bỏ mẫu sau khỏi phía bên trái của giá trị biến.

bên cạnh đó## , việc này sẽ loại bỏ kết quả phù hợp dài nhất ở bên trái, điều này sẽ cung cấp cho bạn

333.txt

Có các toán tử xóa tương tự hoạt động ở phía bên phải của chuỗi,%và trận đấu dài nhất (bắt đầu từ bên phải)%% .

kshTất cả các phiên bản bash (cũng như bash và các shell khác) đều hỗ trợ các toán tử này. (Xin lỗi nếu đó là thuật ngữ sai).

ksh93 phiên bản và lớn hơn ( bash , zsh Có thể có những người khác) cũng hỗ trợ sedGiống như khớp mẫu/giá trị phụ

echo ${str/*_/xx}
#----------|--|>thay thế
#----------> mẫu phù hợp

输出

xx333.txt

这意味着 /Nguyên lý làm việc tương tự như sedPhù hợp với chuỗi dài nhất có thể.

iH

Về tập lệnh shell linux - ksh tìm kiếm sự xuất hiện đầu tiên của _ trong một chuỗi và xóa mọi thứ cho đến khi điều đó xảy ra, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/38780432/

hai mươi bốn 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress