разделить строки файла с помощью разделителя регулярных выражений

Чтобы 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

0
10.03.2019, 21:19
2 ответа

Попробуйте использовать флаг -o, чтобы печатать только совпадающие строки, например.

$ cat <<HEREDOC | grep -Po '\w+'
www.wifi.in.ua
YI-HondBrychka
HEREDOC

www
wifi
in
ua
YI
HondBrychka
1
28.01.2020, 02:40

Замена всех совпадений \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:]новой строкой.

0
28.01.2020, 02:40

Теги

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