Хотя это были возрасты с прошлого раза, когда у меня была рабочая станция SunOS, я предположу, что GUI обычно является частью runlevel 3 по умолчанию, и изменяющийся на runlevel 2 отключил бы GUI:
telinit 2
GUI (возможно Xorg) наиболее вероятен сервис, с которым можно отключить svcadm disable <FMRI>
Список possble сервисов может быть найден с svcs -a
.
set aAbBaBbA bAbBaA bbAb AAaBbAa BBBaaa aBaB
l= u=; printf %s\\n "$@" |
grep -E "^([${l:=[:lower:]}][${u:=[:upper:]}])+[$l]?$|^([$u][$l])+[$u]?$"
aAbBaBbA
bAbBaA
aBaB
Но смотрите ответ Пьера для (очевидно) . Лучшая версия этого.
Тем не менее, есть еще один способ:
grep -vE '[^[:alpha:]]|[[:lower:]]{2}|[[:upper:]]{2}|^$'
... Хотя это будет соответствовать только одному символу на линии. Вы можете исправить это, делая .
между ^
и $
в конце.
try
ls -1 | grep -E '^[A-Z]?([a-z][A-Z])*[a-z]?$'
EDIT: как правильно указал @mikeserv, для не-ASCII символов это не сработает. И действительно, они встречаются довольно часто (например, музыкальные файлы с иностранными названиями для имени файла). Так что более надежный способ:
ls -1 | grep -E '^[[:upper:]]?([[:lower:]][[:upper:]])*[[:lower:]]?$'
В следующем я сохраняю только [A-Z]
для удобочитаемости.
Также предостережение: это будет соответствовать одному символу (верхнему или нижнему). Можно утверждать, что "переменный случай" не определяется ни одним последующим подобным случаем в последовательности нулей и более символов... :-)
Test:
mkdir -p /tmp/junk
cd /tmp/junk
touch aAbBaBbA bAbBaA bbAb AAaBbAa BBBaaa aBaB
ls -1 | grep -E '^[A-Z]?([a-z][A-Z])*[a-z]?$'
# aAbBaBbA
# aBaB
# bAbBaA
Но этого недостаточно. Еще несколько тестов:
touch aB
touch aBcD
touch aBcDeF
touch aBcDEf
touch Ab
touch AbCd
touch AbCdEf
touch AbCdeF
touch AbCdEF
ls -1 | grep -E '^[A-Z]?([a-z][A-Z])*[a-z]?$'
# aAbBaBbA
# aB
# Ab
# aBaB
# aBcD
# AbCd
# aBcDeF
# AbCdEf
# bAbBaA
Введите эту команду:
ls | grep -E '^ ([[: upper:]] [[: lower:]]) + [[: upper:]]? $ | ^ ([[: Lower :]] [[: upper:]]) + [[: lower:]]? $ '
Чтобы разбить это на части.
ls
- это основная команда
Она передается по конвейеру grep
Переключатель -P
или -E
сообщает grep
для поиска с использованием регулярных выражений (regex)
В одинарных кавычках ' и круглых скобках () выкладывается шаблон.
Обычно читается как соответствие любой заглавной букве [[: upper:]]
, затем любой меньшей букве [[: lower:]]
или с использованием вертикальной черты |
Затем сопоставьте любую меньшую букву [[: lower:]]
, затем сопоставьте любую верхнюю букву [[: upper:]]
+
будет соответствовать все, что заключено в круглые скобки () , и воспроизвести это в приведенном списке.
$
сообщает, когда шаблон заканчивается