Чтобы Python не записывал ~ / .python_history
, отключите ловушку , которая активирует эту функцию:
import sys
# Disable history (...but also auto-completion :/ )
if hasattr(sys, '__interactivehook__'):
del sys.__interactivehook__
Если бы вы например, чтобы включить завершение табуляции и отключить функцию истории, вы можете адаптировать код site.enablerlcompleter
. Напишите следующий код в ~ / .pythonrc
и установите export PYTHONSTARTUP = ~ / .pythonrc
в вашей оболочке, чтобы включить его.
import sys
def register_readline_completion():
# rlcompleter must be loaded for Python-specific completion
try: import readline, rlcompleter
except ImportError: return
# Enable tab-completion
readline_doc = getattr(readline, '__doc__', '')
if readline_doc is not None and 'libedit' in readline_doc:
readline.parse_and_bind('bind ^I rl_complete')
else:
readline.parse_and_bind('tab: complete')
sys.__interactivehook__ = register_readline_completion
Попробуйте использовать флаг -o
, чтобы печатать только совпадающие строки, например.
$ cat <<HEREDOC | grep -Po '\w+'
www.wifi.in.ua
YI-HondBrychka
HEREDOC
www
wifi
in
ua
YI
HondBrychka
Замена всех совпадений \W
символами новой строки с использованием Perl (, из которого произошло выражение \W
):
$ perl -pe '$_ =~ s/\W/\n/g' <file
www
wifi
in
ua
YI
HondBrychka
Или, что более соответствует фактической формулировке вопроса:
$ perl -pe '$_ = join("\n", split(/\W/)). "\n"' <file
www
wifi
in
ua
YI
HondBrychka
Выражение PCRE \W
как ERE [^[:alnum:]]
и использование GNUawk
:
awk -v RS='[^[:alnum:]]' 1 file
1
является сокращением от '{ print }'
, и это устанавливает разделитель входных записей на любой символ \W
. Затем записи печатаются на отдельных строках.
Или с GNUsed
:
sed 's/[^[:alnum:]]/\n/g' file
С помощью tr
,становится
$ tr -c '[:alnum:]' '\n' <file
www
wifi
in
ua
YI
HondBrychka
, где -c
заменяет каждый символ, который является , а не и [:alnum:]
новой строкой.