вычесть строки в обратном порядке, только если больше, чем предыдущая строка

Если вы хотите полностью отключить графический сеанс и загрузиться в режиме восстановления, отредактируйте строку ядра в grub при запуске и добавьте s в конце. В качестве альтернативы вы также можете добавить в эту строку systemd.unit = rescue . См. этот поток

Чтобы запустить gnome из командной строки, это зависит от диспетчера входа в систему. Если у вас, например, gdm, попробуйте sudo gdm .

Если вы просто установили gnome и хотите переключиться на предыдущий менеджер рабочего стола, поищите на экране входа в систему меню с названием «sessions» или что-то подобное.

1
19.08.2015, 00:34
2 ответа

tac полезен, чтобы изменить порядок строк в файле - (также BSD tail -r может изменить порядок строк)

tac file | awk 'p { if( p>$1 ) print p-$1; else print p } { p=$1 }' 

Если по какой-то причине вы не можете использовать tac или хотите использовать только awk, вы можете использовать awk для чтения всего файла в память через массив и END {} обработать массив в обратном порядке.

awk '{ r[i++]=$0};  END{ for(i=i-1; i>=0; i--) 
       if( r[i+1] ) if( r[i+1]>r[i] ) print r[i+1]-r[i]; else print r[i+1] 
     }' file
1
27.01.2020, 23:50

Вы можете использовать tac для реверсирования файла, а затем awk для вычислений. Я изменил ваш файл , чтобы строки стали более случайными.

$ cat file
101
220
303
140
305
$ tac file | awk '{if(last>$0)print last-$0;else print last;last=$0}END{print last}'

165
140
83
119
101

Два замечания:

  • В конце концов, вам нужно удалить первую строку (пустую), если она вам не нужна.
  • В блоке END {} печатается самая первая строка файла, удалите этот блок, если вы этого не хотите.
0
27.01.2020, 23:50

Теги

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