Linux: как захватить число / с из строки

260
enodmilvado

Я использую следующий синтаксис, чтобы захватить только число от имени хоста машины

echo machineLinux05 | sed s'/\./ /g' | awk '' | sed 's/[^0-9]//g'  05 

Но этот способ не так элегантен. Есть ли другая короткая альтернатива для захвата числа из строки?

0
Какова цель `sed s '/\./ / g' | awk '' `? В вашем примере ни одна из этих команд ничего не делает. John1024 6 лет назад 1
цель в том случае, если имя хоста также имеет доменное имя как machineLinux05.FG.com enodmilvado 6 лет назад 0
`tr -cd '[0-9]' <<<" machineLinux05 "` Cyrus 6 лет назад 2
`echo machineLinux05.FG, com | grep -o '[0-9] \ +' `также работает. Paulo 6 лет назад 1

2 ответа на вопрос

1
Mureinik

Вы можете просто избавиться от первого, sedи awkони бессмысленны:

$ echo machineLinux05 | sed 's/[^0-9]//g' 
в случае, если у нас также есть домен как machineLinux05.FG, com, то можете ли вы обновить ответ enodmilvado 6 лет назад 0
@enodmilvado Это все еще печатает 05 даже с полным именем машины Mureinik 6 лет назад 1
0
AnFi

Попробуйте следующий однострочник:

echo machineLinux05.FG.com | perl -pe 's/\..*$//;s/[^0-9\n]+//g' 
в случае, если у нас также есть домен как machineLinux05.FG, com, то можете ли вы обновить ответ enodmilvado 6 лет назад 0
`s /\..*$//` удаляет первую точку и все символы после нее. AnFi 6 лет назад 0

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