我如何用jq對文本進行標題化處理(每個詞都大寫)?
預期的轉變。"lorum ipsum" → "Lorum Ipsum"
uj5u.com熱心網友回復:
這可以通過gsub、ascii_upcase和命名的捕獲組實作:
$ echo '"lorum ipsum"'| jq 'gsub("(? <x>[A-z])(?<y>[A-z] )"; "(.x|ascii_upcase)(.y)")'/span>
"Lorum Ipsum"。
uj5u.com熱心網友回復:
你可以使用nawk for回圈,toupper,sub和substr如下:
echo 'lorum ipsum' | nawk '{for(i=1;i<=NF;i )sub(/。 /,toupper(substr($i,1,1)),$i)}1'/span>
uj5u.com熱心網友回復:
給定一個你認為是單詞的字串,你可以通過把它轉換成一個陣列(./""),修改第一個元素(first|=ascii_upcase)并把所有元素連接在一起(add)來大寫其第一個字符,像這樣
./"" | first |= ascii_upcase | add
類似地,給定一個字串,將其分割成一個字陣列,使用map對每個元素應用上述方法,并將它們重新連接起來。根據您(或輸入資料要求您)認為是一個詞的情況,分割字串可能有所不同。鑒于你的輸入例子("lorum ipsum"),使用一個空格字符作為單詞分隔符就足夠了。我將在一個變數中設定它(--arg ws ' ')并使用它來分割(./$ws)和連接(join($ws)):
echo '"lorum ipsum"' | jq --arg ws ' '
./$ws | map(
./"" | 第一 |= ascii_upcase | 添加
) | join($ws)
'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/308023.html
標籤:
