Điểm:0

Làm cách nào để viết hoa các chữ cái sau một ký tự nhất định

lá cờ eg

Làm cách nào để viết hoa các chữ cái trước một ký tự nhất định? (^)

Tôi đang cố gắng làm ngược lại với liên kết trên.

Tôi muốn viết hoa tất cả mọi thứ sau một ký tự hoặc từ nhất định.

Nó có thể sử dụng awk, sed hoặc bash

ví dụ

trước

 foo^bar
 foobar ^ foobar

sau đó

 foo^BAR
 foobar ^ FOOBAR

Cảm ơn

Điểm:1
lá cờ hr

Với sed:

tệp sed 's/\^.*/\U&/'

(^ được thoát, để loại bỏ ý nghĩa đặc biệt của nó là neo bắt đầu dòng; bạn cũng có thể sử dụng [^])

hoặc awk

awk -F^ 'BEGIN{OFS=FS} {x=$1; $0=topper($0); $1=x} 1' tập tin

(lưu trữ đầu tiên ^-trường riêng biệt; thay đổi toàn bộ dòng thành chữ hoa; sau đó thay thế trường đầu tiên ban đầu).

lá cờ eg
Được đánh giá cao, tôi đã cố gắng cả ngày để làm điều này đúng.
Điểm:1
lá cờ cn

Với bash đơn giản, chúng ta cần thêm một vài biến:

cho dòng trong 'foo^bar' 'foobar ^ foobar' 'a^b^c'; làm
  tiền tố=${dòng%%^*}
  hậu tố=${dòng#*^}
  caps="${tiền tố}^${hậu tố^^}"
  printf '%s ==> %s\n' "$line" "$caps"
xong
foo^bar ==> foo^BAR
foobar ^ foobar ==> foobar ^ FOOBAR
a^b^c ==> a^B^C
  • ${var%%pattern} -> loại bỏ từ cuối chuỗi con dài nhất phù hợp với mẫu
  • ${var#pattern} -> loại bỏ từ đầu chuỗi con ngắn nhất phù hợp với mẫu
  • ${var^^} -> viết hoa

Tham khảo: 3.5.3 Mở rộng tham số Shell

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.