На основной вопрос немного трудно ответить, поскольку файлы, возможно, были затронуты в различных точках.
Один файл, который не становится затронутым очень часто и создается, когда машина сначала загружается, является ssh файлом секретных ключей для сервера. Посмотрите на /etc/ssh/ssh_host_dsa_key
. Если Вы не повторно вводите ssh сервер, тот файл должен быть датой установки машины. (Это исключает особые обстоятельства как этот являющийся образом виртуальной машины, и т.д.),
Тем не менее жемчуг 5.8.8 - то, что является текущим на RHEL 5. Да, это старо, но это - то, как Red Hat работает, с точки зрения устойчивости версии программного обеспечения. Исправления ошибок будут бэкпортированы к 5.8.8 пакетам, тем не менее, таким образом, Вы будете в безопасности в том отношении. Текущий определенный жемчуг 5.8.8 пакетов являются perl-5.8.8-38.el5_8, который был выпущен 29 октября 2012. rpm -qi --changelog perl |head -50
даст Вам вершину журнала изменений.
Кроме того, XML:: Синтаксический анализатор получен как отдельный пакет. Искать perl-XML-Parser
. Это находится, вероятно, в EPEL или DAG.
$ echo "this_is_the_string" | sed -r 's/(^|_)([a-z])/\U\2/g'
ThisIsTheString
Замечательный рисунок
(^ | _)
В начале строки или после подчеркивания - первая группа
([AZ])
Один нижний регистр Письмо - вторая группа
На
\ u \ 2
верхняя часть второй группы
g
глобально.
Я только в этом ответе только потому, что он короче и проще, чем любой другой.
sed -re "s~(^|_)(.)~\U\2~g"
Он говорит: Upcase, характер после _
или начало. Не писем не будет изменен, так как у них нет случая.
Директива хоста может принимать несколько хостов, например:
Host *.domain.tld specific-host.tld 10.*.*.*
User foo
Port 2222
Это установило бы пользователя и порт для всех хостов, соответствующих шаблону звезды,
Явный хост Consic-Host.tld
или, предполагая, что вы введите IP-адрес
Числа, любой хост, чей первый IPv4 Byte 10. Тогда вы можете добавить хозяин
/ Имя хоста
Пары, чтобы получить прозвища для определенных хостов, например.
Не стоит представлять собой все целую строку в регулярном выражении матча - SED имеет модификатор / G
, который позволяет прогуляться Несколько совпадений и заменяют каждый из них:
echo "this_is_the_string" | sed 's/_\([a-z]\)/\U\1/g;s/^\([a-z]\)/\U\1/g'
Первое регулярное выражение _ \ ([Az] \)
- каждая буква после подчеркивания; Второй матч соответствует первой букве в строке.
Вот путь Perl:
$ echo "this_is_the_string" | perl -pe 's/(^|_)./uc($&)/ge;s/_//g'
ThisIsTheString
Это может иметь дело со строками произвольной длины:
$ echo "here_is_another_larger_string_with_more_parts" |
perl -pe 's/(^|_)./uc($&)/ge;s/_//g'
HereIsAnotherLargerStringWithMoreParts
он будет соответствовать любому символу (.
), который заходит после запуска строки или подчеркивания ( (^ | _)
) и замените его верхней версией в корпусе ( UC ($ &)
). $ &
- это специальная переменная, которая содержит то, что было только что соответствовало. E
в конце в конце /// GE
позволяет использовать выражения (функцию UC ()
в этом случае) в пределах замены и G
делает его заменить все вхождение в строке. Вторая замена удаляет подчеркивания.
Так как вы используете Bash
, если вы храните свою строку в переменной, вы также можете сделать это только оболочку:
uscore="this_is_the_string_to_be_converted"
arr=(${uscore//_/ })
printf %s "${arr[@]^}"
ThisIsTheStringToBeConverted
$ {Uscore // _ / }
заменяет все _
с пространством, (....)
(....)
разбивает строку в массив, $ {ARR [@] ^}
Первая буква каждого элемента в верхний регистр, а затем printf% s ..
печатает все элементы один за другим.
Вы можете сохранить строку CARED в другую переменную:
printf -v ccase %s "${arr[@]^}"
и использовать / повторно повторно позже, например:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
или, с ZSH
:
uscore="this_is_the_string_to_be_converted"
arr=(${(s:_:)uscore})
printf %s "${(C)arr}"
ThisIsTheStringToBeConverted
($ {(s: _ :) USCORE})
Разбивает строку на _
в массив, (c)
, используя первую букву каждого элемента и printf% s ...
печатает все элементы один за другим ..
Чтобы сохранить его в другой переменной, вы можете использовать (J ::)
, чтобы присоединиться к элементам:
ccase=${(j::)${(C)arr}}
и использовать / повторно использовать его позже:
printf %s\\n $ccase
ThisIsTheStringToBeConverted
В перле:
$ echo 'alert_beer_core_hemp' | perl -pe 's/(?:\b|_)(\p{Ll})/\u$1/g'
AlertBeerCoreHemp
Это также i18n -возможность:
$ echo 'алерт_беер_коре_хемп' | perl -CIO -pe 's/(?:\b|_)(\p{Ll})/\u$1/g'
АлертБеерКореХемп
Я сделал так:
echo "this_is_the_string" | sed -r 's/(\<|_)([[:alnum:]])/\U\2/g'
и получил этот результат:
ThisIsTheString
Мой выбор:
echo "this_is-the_string-2.0" | perl -pe 's/(?:^|[^a-z])([a-z0-9])/\u$1/g'
Что приводит к:
ThisIsTheString20