Grep, соответствующий ячейке файла CSV и индексу той строки

ps aux -P показывает эти колонки:

$ ps aux -P | head -1
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

Только 2-я колонка - это pid.

Предупреждение: не пытайтесь убить случайные пиды.

pid 3947 был процессом grep, который закончился, когда вы получили ваше приглашение обратно, так что на самом деле нет такого процесса.

Если бы был процесс nginx, вы бы увидели его в выводе grep. Вывод: nginx не запущен на вашей машине.

1
11.02.2015, 09:03
2 ответа

С awk:

$ awk -F, '$0~"0\\.99*"{printf $1;for(i=1;i<=NF;i++){if($i~"0\\.99*"){printf ","$i}};printf "\n"}'
f2,0.99999,0.99832
f4,0.99712

В большем количестве удобочитаемой формы:

$ awk -F, '
      $0~"0\\.99*"{
          printf $1
          for(i=1; i<=NF; i++){
              if($i~"0\\.99*"){
                  printf ","$i
              }
          }
          printf "\n"
      }
  '
1
27.01.2020, 23:51

Если вы можете использовать perl:

$ perl -F, -anle '
  BEGIN { $, = "," }
  @h = grep { /^0\.99/ } @F;
  print $F[0], @h if @h;
' file
f2,0.99999,0.99832
f4,0.99712
0
27.01.2020, 23:51

Теги

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