Как обрезать вывод 'кто-b' для показа только даты и времени

Я хочу, простой командой в терминале, спросить свой компьютер, когда я в последний раз загрузил свою систему, и я хочу, чтобы ответ открылся в текстовом файле только с числами. Я использовал команду:

who -b >> file.txt

Это работало, но это говорит:

system boot  xxxx-xx-xx xx:xx

Я просто хочу, чтобы дата и время обнаружилась в текстовом файле. Кто-либо знает, как избавиться от текста и просто иметь числа в запасе в текстовом файле в одной простой команде?

3
задан 9 November 2017 в 12:36

2 ответа

who -b | sed 's/.*  //' >> file.txt

работы для всех локалей, установленных в моей системе (см. тест ниже), в основном, он удаляет все до последнего происшествия двух последующих пробелов, которые должны соответствовать началу метки времени безотносительно Ваши настройки локали.

$ for i in $(locale -a); do printf "%-10s: %s\n" $i "$(LANG=$i who -b | sed 's/.*  //')"; done
C         : Sep 23 20:22
C.UTF-8   : 2017-09-23 20:22
de_AT.utf8: 2017-09-23 20:22
de_BE.utf8: 2017-09-23 20:22
de_CH.utf8: 2017-09-23 20:22
de_DE.utf8: 2017-09-23 20:22
de_LI.utf8: 2017-09-23 20:22
de_LU.utf8: 2017-09-23 20:22
en_AG     : 2017-09-23 20:22
en_AG.utf8: 2017-09-23 20:22
en_AU.utf8: 2017-09-23 20:22
en_BW.utf8: 2017-09-23 20:22
en_CA.utf8: 2017-09-23 20:22
en_DK.utf8: 2017-09-23 20:22
en_GB.utf8: 2017-09-23 20:22
en_HK.utf8: 2017-09-23 20:22
en_IE.utf8: 2017-09-23 20:22
en_IN     : 2017-09-23 20:22
en_IN.utf8: 2017-09-23 20:22
en_NG     : 2017-09-23 20:22
en_NG.utf8: 2017-09-23 20:22
en_NZ.utf8: 2017-09-23 20:22
en_PH.utf8: 2017-09-23 20:22
en_SG.utf8: 2017-09-23 20:22
en_US.utf8: 2017-09-23 20:22
en_ZA.utf8: 2017-09-23 20:22
en_ZM     : 2017-09-23 20:22
en_ZM.utf8: 2017-09-23 20:22
en_ZW.utf8: 2017-09-23 20:22
it_IT.utf8: 2017-09-23 20:22
POSIX     : Sep 23 20:22
<час>

я оставлю свои другие решения здесь для ссылки:

who -b | awk '{print $(NF-1)" "$NF}' >> file.txt

распечатает последние два столбца (разделенный пробелом) из вывода команды, который работает на локаль, устанавливающую как Ваш (согласно образцу в Вашем вопросе).

Для англичан производит Вас, нуждаются последние три столбца :

who -b | awk '{print $(NF-2)" "$(NF-1)" "$(NF)}' >> file.txt
2
ответ дан 1 December 2019 в 16:54

Здесь Вы идете: who -b | cut -c23-40, и также who -b | cut -d' ' -f13,14

Это - вывод, который я получаю, в обоих случаях 2017-10-11 07:55.

0
ответ дан 1 December 2019 в 16:54

Другие вопросы по тегам:

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