@babbert

Sed — как вывести все цифры до первой точки?

Здравствуйте.
Команда:
screen -x | grep "_vc"
Вывод:
16382.AlS_vc   (08.04.2019 04:46:43)   (Detached)
16380.NaS_vc   (08.04.2019 04:46:43)   (Detached)
16378.ArN_vc  (08.04.2019 04:46:43)   (Detached)
16376.DeS_vc  (08.04.2019 04:46:43)   (Detached)

Мне нужно регулярное выражение, для sed, чтобы выводило цифры до первой точки:
16382
16380
16378
16376

screen -x | grep "_vc" | sed '\Что-то_тут\'
И если я потом '| kill' добавлю, так будет работать?
Помогите, пожалуйста
  • Вопрос задан
  • 1847 просмотров
Решения вопроса 3
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Мне нужно регулярное выражение, для sed, чтобы выводило цифры до первой точки:

sed 's/\..*//'

screen -x | grep "_vc" | sed '\Что-то_тут\'

Можно сделать одним только седом: screen -x | sed -n '/_vc/s/\..*//p'

И если я потом '| kill' добавлю, так будет работать?

Нет. kill не читает ничего из стандартного ввода. Если ты хочешь передать эти номера как параметры kill нужно добавить | xargs kill
Ответ написан
Комментировать
shinma
@shinma
ИТ, Linux, Mainframe, Unix, Кластер
cat /tmp/file
11111.22222.333333

$ awk -F"." '{ print $1 $2 }' /tmp/file
1111122222

screen -x | grep "_vc" | awk -F"." '{ print $1 }'
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Мне нужно регулярное выражение, для sed, чтобы выводило цифры до первой точки:


Зачем такие сложности? Режьте прямо в grep:

screen -x | grep -oP "^\d*(?=\..{3}_vc)"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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