Я новичок в Linux, как мне получить «34» из команды uname -v
?Как мне получить 34 из «# 34 PREEMPT Mon Mar 25 14:24:26 SGT 2013»
Мой результат команды uname -v
является #34 PREEMPT Mon Mar 25 14:24:26 SGT 2013
Я хочу номер 34 только.
Я новичок в Linux, как мне получить «34» из команды uname -v
?Как мне получить 34 из «# 34 PREEMPT Mon Mar 25 14:24:26 SGT 2013»
Мой результат команды uname -v
является #34 PREEMPT Mon Mar 25 14:24:26 SGT 2013
Я хочу номер 34 только.
Использования grep показать только согласующую часть линии (-o
), совпадающие с #
следует один или более (+
) цифры ([0-9]
):
uname -v | grep -o '#[0-9]\+'
Как насчет:
[[email protected] ~]$ echo '#34 PREEMPT ...' | sed 's/^#\([0-9]\+\).*/\1/'
34
Вы также можете сделать это проще с -r
:
sed -r 's/^#([0-9]+).*/\1/'
спасибо: 'uname -v | sed 's/^ # \ ([0-9] \ + \). */\ 1 /' 'эта работа для меня. Мне нравится sed, но нулевые знания об этом. – CCC
@iAsk Я просто об этом узнал. – cnicutar
отлично, вернулась к моей программе, только раз использую ее. Я буду отмечать @Johnsyweb как ответ, поскольку вы знаете, что оба ответа верны. Я тоже голосую за ваш ответ. – CCC
спасибо. 'uname -v | grep -o '[0-9] \ +' 'Мне нужен только номер. – CCC