Чтобы извлечь только строки, содержащие цифры:
$ grep '^[0-9][0-9]*$' words >digits
Регулярное выражение ^[0-9][0-9]*$
будет соответствовать любой строке, которая начинается с цифры и затем содержит только цифры до конца строки.
Если в вашем файле нет пустых строк, вы можете изменить его на ^[0-9]*$
.
Если вам нужны строки с числами, удалите вместо них строки с буквенными символами (проще, чем пытаться построить регулярное выражение для общего числа):
$ grep -v '[a-zA-Z]' words >numbers
Оба варианта с использованием классов символов POSIX:
$ grep '^[[:digit:]][[:digit:]]*$' words >digits
$ grep -v '[[:alpha:]]' words >numbers
Update: Если вы хотите выбрать строки, содержащие числа с плавающей запятой, вы можете использовать (расширенное) регулярное выражение ^[+-]([0-9]*\.)?[0-9]+$
:
$ grep -E '^[+-]?([0-9]*\.)?[0-9]+$' words >floats
Все сводится к тому, какого рода "число" мы ищем.
Ваша PS1 также дает мне черно-белый выход.
Однако переключение обратно на мой дает мне цвет, так что вы должны быть в состоянии понять разницу, я использую
$ echo $PS1
\[\033[01;31m\]\t \[\033[01;32m\]durrantm \[\033[02;36m\]\h \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"` \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$
git_branch - это функция bash, которая у меня есть:
git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}
Это работает одинаково на OSX и Ubuntu
Мое решение этой проблемы заключалось в настройке
force_color_prompt=yes
в моем .bashrc
. Теперь моя подсказка tmux имеет цвет.
На моей машине решение состоит в том, чтобы добавить
set -g default-terminal "xterm-256color"
с по ~/.tmux.conf
.
У меня возникла эта проблема при работе с Ubuntu 20.04.
В то время как ответ Панки сработал для меня, я обнаружил, что всегда указываю source ~/.bashrc
всякий раз, когда вхожу в оболочку Tmux после комментария evaristegd .
Вот как я это исправил:
Во-первых, создайте файл с именем .tmux
в домашнем каталоге вашего компьютера, то есть ~/.tmux.conf
.
Затем поместите в него конфигурацию, которую вы хотите использовать для Tmux , и сохраните ее. Для меня конфигурация, которая мне была нужна, была такой же, как пакет экрана GNU , который поставляется по умолчанию с использованием Ubuntu, поэтому я скопировал содержимое файла ~/.bashrc
в файл ~/.tmux.conf
. Таким образом, если мне нужно отредактировать какую-либо конфигурацию для Tmux , я бы не стал вмешиваться в конфигурацию для экрана GNU .
Примечание.:Вы можете пропустить этот шаг и просто использовать файл ~/.bashrc
, если вам не нужно разделение ответственности.
Затем добавьте файл в один из файлов ~/.bash_profile
, ~/.bash_login
и ~/.profile
. Его нужно добавить внизу файла:
source "$HOME/.tmux.conf"
ИЛИ
source "$HOME/.bashrc"
Вот пример:
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include.bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
source "$HOME/.tmux.conf"
Примечание.:Файл ~/.bash_profile
имеет первый приоритет, затем файл ~/.bash_login
— второй приоритет, а затем файл ~/.profile
— последний приоритет.
Вот и все.
Надеюсь, это поможет