Вычисление попарных разниц во времени в мили-секундах между совпадающими записями в таблице данных

awk ~NF<2{printf\~\n\~}{print}~ 

Я думаю, что эти тильды должны быть в двойных -кавычках, если вы запускаете команду в оболочке:

awk "NF<2{printf\"\n\"}{print}"

Ошибка, которую вы получаете, связана с тем, что оболочка видит <как оператор перенаправления и принимает следующую часть как имя файла.

Или, что еще лучше, поместите скрипт awk в одинарные -кавычки, чтобы вам не нужно было экранировать кавычки внутри него:

awk 'NF<2{printf"\n"}{print}'

Это напечатает дополнительную новую строку непосредственно перед любой строкой с менее чем двумя полями. Но это не то же самое, что пустая строка, в строках с одним словом все равно будет добавлена ​​дополнительная пустая строка.

Может быть, проверить, есть ли ровно нулевые поля:

awk 'NF == 0 {printf "\n"} {print}'

или если строка полностью пуста:

awk '$0 == "" {printf "\n"} {print}'

Но так как действие по умолчанию — print $0, а пустая строка является ложной, а printf "\n"в значительной степени совпадает с printс пустой строкой, это можно было бы сократить до:

awk '!$0; 1'
1
09.08.2019, 07:31
0 ответов

Теги

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