Я на Windows и слышал только о linuxes awk и т.д., Поэтому я могу только представить, что это возможно без реальных сценариев:

У меня есть данные как

..
162     42      A single serving
162     62      of french fries, please
164     -1      ABC
164     -1      1
..

что я хотел бы быть превращен в

..
A single serving of french fries, please
..

так что правило будет

объединить третьи столбцы для идентичных первых столбцов, когда второй столбец> = 0.

Я постараюсь найти awk для Windows.

1 ответ1

0

Используйте массивы для построения строк:

awk -F '\t' '
  $2 >= 0 {str[$1] = str[$1] $3 " "}
  END {for (s in str) print str[s]}
' filename

Я надеюсь, что ваши данные на самом деле разделены табуляцией, потому что в противном случае $ 3 == "A" для первой строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .