Учитывая ваш входной пример, вы можете использовать awk
.
Если вы хотите ненулевых линий:
awk '{sum=0;for(i=2;i<=NF;i++){sum+=$i} if (sum){ print $0}}' file
Если вы не хотите ненулевых линий:
awk '{sum=0;for(i=2;i<=NF;i++){sum+=$i} if (sum==0){ print $0}}' file
Это будет работать для любого числа числовых полей после того, как первый.
Таким же образом вы можете использовать sed
.
Если вы хотите 0 только поля:
sed -n -E '/^[[:alnum:]\/]+[0[:blank:]]+$/p' file
Если вы хотите, не равен нулю только поля, свести на нет этот матч:
sed -n -E '/^[[:alnum:]\/]+[0[:blank:]]+$/!p' file
Который также работает для grep
:
grep -E '^[[:alnum:]\/]+[0[:blank:]]+$' file
или:
grep -E -v '^[[:alnum:]\/]+[0[:blank:]]+$' file
Отфильтровать или отфильтровывать? – merlin2011
Попробуйте 'grep -v [1-9] output.txt' –
Хотелось бы запустить что-нибудь log-файл cat | grep -v '....' – uatousa