Используйте apache commons-io , только один код строки:
FileUtils.copyURLToFile(URL, File)
Не могли бы вы попробовать следующее.
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.
Это может работать для вас (GNU sed):
sed -E 's/^\w+|\b\w{4,}\b/\u&/g' file
Верхний регистр - первый символ слова, если это слово появляется в строке, начинающейся со слова или любого слова, 4 или более символов. длинные
Используя 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
информационные страницы для получения более подробной информации.