Как прописать первый символ подстроки в верхнем регистре, только если она имеет длину более 3 символов

Используйте apache commons-io , только один код строки:

FileUtils.copyURLToFile(URL, File)

0
задан tripleee 19 January 2019 в 11:10
поделиться

3 ответа

Не могли бы вы попробовать следующее.

echo "my name is user from here not there." |
awk '{for(i=1;i<=NF;i++)
    if(length($i)>3){$i=toupper(substr($i,1,1)) substr($i,2)}}
    1'

Результат:

my Name is User From Here not There.
0
ответ дан tripleee 19 January 2019 в 11:10
поделиться

Это может работать для вас (GNU sed):

sed -E 's/^\w+|\b\w{4,}\b/\u&/g' file

Верхний регистр - первый символ слова, если это слово появляется в строке, начинающейся со слова или любого слова, 4 или более символов. длинные

0
ответ дан potong 19 January 2019 в 11:10
поделиться

Используя GNU sed, (и bash):

F="my name is user from here not there."
sed -E 's/^./\u&/;s/([[:space:]])([[:alpha:]]{4})/\1\u\2/g' \ 
    <<< "${F,,}"

или:

sed -E 's/^./\u&/;s/(\s)(\w{4})/\1\u\2/g' <<< "${F,,}"

Выход:

My Name is User From Here not There.

Примечания:

"${F,,}" является расширением параметра модификации регистра bash , оно возвращает версию $F в нижнем регистре, которая становится входом для sed.

GNU sed предлагает некоторые полезные синонимы и сокращения для общих регулярных выражений классов символов. Класс символов [a-zA-Z0-9_] может быть сокращен до [[:alpha:]_], или еще проще \w.

Хотя \u выглядит как сокращение в регулярном выражении , это не так. Это «специальная последовательность» , используемая только в s текст замены команды ubstitute - \u означает «перевод следующего символа в верхний регистр» . [ 1139]

& относится к любому первому регулярному выражению в команде s ubstitute . Сравните следующее:

sed 's/./&/'          <<< foo  # outputs "f"
sed 's/./&/g'         <<< foo  # outputs "foo"
sed 's/./&&&&/g'      <<< foo  # outputs "ffffoooooooo"
sed 's/./\u&&&\u&/g'  <<< foo  # outputs "FffFOooOOooO"
sed 's/.*/&&&&/'      <<< foo  # outputs "foofoofoofoo"

См. GNU sed информационные страницы для получения более подробной информации.

0
ответ дан agc 19 January 2019 в 11:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: