2015-04-24 2 views
0

Я использую last | grep pts/, чтобы проверить, кто войти в мою Raspberry Pi:Как извлечь часть строки в сценарий оболочки?

samuelli pts/2  localhost  Fri Apr 24 19:51 still logged in 
pi  pts/1  localhost  Fri Apr 24 19:50 - 19:53 (00:03)  
liuly pts/1  localhost  Fri Apr 24 19:50 - 19:50 (00:00) 

Теперь я хочу, чтобы извлечь имя пользователя, как pi и их время входа в систему, как Fri Apr 24 19:51 и выход пользователя и времени в файл. Как я могу написать этот скрипт? Использование cut?

+0

Что вы пробовали до сих пор? Проблема с 'cut' заключается в том, что он не обрабатывает переменные количества пробелов. Проверьте вместо этого 'awk'. – dg99

ответ

1

Использование awk напечатает имя пользователя, а также время и >> может перенаправить его в текстовый файл:

last | grep pts/ | awk '{print $1 " "$4 " "$5 " "$6 " "$7}' >> sampletest.txt

+1

Одной из основных функций программы 'awk' является условие, которое может предшествовать действию блока. Часто имеет смысл использовать это условие для выбора строк вместо дополнительного 'grep':' last | awk '/ pts \ // {print [...] ' –

Смежные вопросы