Vì bạn có một sed
thẻ ở đây là một sed
câu trả lời:
echo "$word" | sed -e "{ s/^\(.\).*/\1/ ; q }"
Chơi bằng cách chơi cho những người thích những (Tôi làm!):
{
s
: bắt đầu thói quen thay thế
/
: Bắt đầu chỉ định những gì sẽ được thay thế
^\(.\)
: bắt ký tự đầu tiên trong Nhóm 1
.*
:, đảm bảo phần còn lại của dòng sẽ thay thế
/
: bắt đầu chỉ định thay thế
\1
: insert Group 1
/
: Phần còn lại bị loại bỏ;
q
: Thoát sed
để nó không lặp lại khối này cho các dòng khác nếu có.
}
Thật là vui! :)
Bạn cũng có thể sử dụng grep
và vv nhưng nếu bạn đang ở trong bash
các ${x:0:1}
phép thuật vẫn là giải pháp tốt hơn imo. (Tôi đã dành hơn một giờ để cố gắng sử dụng mở rộng biến POSIX để làm điều đó nhưng không thể :(
)
-c
tùy chọn trong phần đầu POSIX: < unix.com/man-page/posix/1/head >.