Vì bạn đang sử dụng bash
, nếu bạn lưu trữ chuỗi của mình trong một biến, bạn cũng có thể thực hiện nó chỉ ở dạng vỏ:
uscore="this_is_the_string_to_be_converted"
arr=(${uscore//_/ })
printf %s "${arr[@]^}"
ThisIsTheStringToBeConverted
${uscore//_/ }
thay thế tất cả _
bằng khoảng (....)
trắng , chia chuỗi thành một mảng, ${arr[@]^}
chuyển đổi chữ cái đầu tiên của mỗi phần tử thành chữ hoa và sau đó printf %s ..
in tất cả các phần tử lần lượt.
Bạn có thể lưu trữ chuỗi vỏ lạc đà vào một biến khác:
printf -v ccase %s "${arr[@]^}"
và sử dụng / tái sử dụng nó sau, vd:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
Hoặc, với zsh
:
uscore="this_is_the_string_to_be_converted"
arr=(${(s:_:)uscore})
printf %s "${(C)arr}"
ThisIsTheStringToBeConverted
(${(s:_:)uscore})
chia chuỗi trên _
thành một mảng, (C)
viết hoa chữ cái đầu tiên của mỗi phần tử và printf %s ...
in tất cả các phần tử lần lượt ..
Để lưu nó trong một biến khác, bạn có thể sử dụng (j::)
để nối các phần tử:
ccase=${(j::)${(C)arr}}
và sử dụng / tái sử dụng nó sau:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
\U\2
chèn văn bản tìm thấy từ nhóm thứ hai, được chuyển đổi thành TẤT CẢ CAPS. So sánh với\u\2
, chèn văn bản trong trường hợp Câu, chỉ có ký tự đầu tiên được viết hoa. (2) Tất cả các ví dụ được đưa ra dưới đây sẽ dịch chuyển this this_is_a_opes và thành This ThisASASringring - đây là những gì bạn yêu cầu, nhưng hơi khó đọc. Bạn có thể muốn sửa đổi các yêu cầu của mình cho trường hợp đặc biệt của một từ một chữ cái (chuỗi con). Tiết (Cont'd)