Сравните первое поле каждой строки, первое поле которого “ 2000 ” пока не будет найдено другое поле

Чтобы запустить fluxbox, вы сначала выходите из системы, затем выберите fluxbox на экране входа в систему (там должно быть меню) и войдите в систему.

Для запуска с терминала

Если вы не можете найти fluxbox на экране входа в систему, обратитесь на сайты поддержки backtrack (список рассылки и т. д.). Вопросы о не-ubuntu-дистрибутивах, в том числе отходы, рассматриваются здесь не по теме, и я подозреваю, что этот вопрос скоро будет закрыт.

http://blog.bodhizazen.com/linux/a-5-minute- руководство к Fluxbox /

1
задан 7 January 2016 в 15:39

1 ответ

Использование Perl:

perl -lane 'if($F[0]!=2000){print $x;exit}else{$x=$_}' in

Чтобы сохранить результат в переменной:

var=$(perl -lane 'if($F[0]!=2000){print $x;exit}else{$x=$_}' in)
if($F[0]!=2000){print $x;exit}: если первое поле не 2000 печатает содержимое из $x и выходов; else{$x=$_}: если первое поле 2000 назначает текущую запись $x.

Это ничего не выведет, если первое поле первой записи не является 2000, а последняя запись, первое поле которой 2000 в противном случае.

% cat in
2000 255    17.    11.     0.    30.  0.05  97. 0.110  6.7  6.7  596. 0.03 0.27  0  0
2000 256    17.    11.     0.    30.  0.05  97. 0.109  6.7  6.7  596. 0.03 0.22  0  0
2000 257    17.    11.     0.    30.  0.05  97. 0.109  6.7  6.7  596. 0.02 0.20  0  0
2000 258    17.    11.     0.    30.  0.05  97. 0.109  6.7  6.7  596. 0.02 0.16  0  0
2000 259    17.    11.     0.    30.  0.05  97. 0.109  6.6  6.6  596. 0.02 0.18  0  0
No Living leaves
% perl -lane 'if($F[0]!=2000){print $x;exit}else{$x=$_}' in
2000 259    17.    11.     0.    30.  0.05  97. 0.109  6.6  6.6  596. 0.02 0.18  0  0
% var=$(perl -lane 'if($F[0]!=2000){print $x;exit}else{$x=$_}' in)
% echo $var
2000 259    17.    11.     0.    30.  0.05  97. 0.109  6.6  6.6  596. 0.02 0.18  0  0
2
ответ дан 23 May 2018 в 14:29
  • 1
    См. Правки по вопросу. , .Поэтому это на самом деле awk-способный вопрос, а не bash-able :) – Sergiy Kolodyazhnyy 7 January 2016 в 14:09
  • 2
    @Serg Спасибо за головы – kos 7 January 2016 в 14:15
  • 3
    Я пытаюсь применить предоставленный вами код. Однако мне нужно сохранить последнюю строку, содержащую «2000». а не строка, содержащая «Нет живых листьев». – Omar Ali 7 January 2016 в 14:54
  • 4
    @OmarAli См. Обновленный ответ. – kos 7 January 2016 в 15:03

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

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