2013-09-06 2 views
2

Мне нужно сравнить конкретные столбцы (столбцы 3 и 6) и где указаны оба числа, добавьте соотношение столбца 3 к столбцу 6 в качестве дополнительного колонка 7.Сравнение столбца в том же файле, чтобы вставить еще один столбец в тот же файл

Мой Файл

Col1 col2 col3 col4 col5 col6 
a s318 14 - -  - 
b s319 25 b t568 15  
c s320 8 c t569 12 
- -  - d t570 20  
f s322 42 f t571 5 

Ожидаемый результат

Col1 col2 col3 col4 col5 col6 ratio 
a s318 14 - -  -  0 
b s319 25 b t568 15 1.67 
c s320 8 c t569 12 0.67 
- -  - d t570 20 0 
f s322 42 f t571 5 8.4 

Я использовал awk сценарий, чтобы получить результат, но он показывает awk: (FILENAME=file.txt FNR=4) fatal: division by zero attempted.

awk 'NR==1{$7="ratio"}NR>1{if($3!=$6)print $7=($3)/($6)}{print}' file.txt 

Мне нужна помощь; вы можете решить это?

ответ

3

Используйте тройной оператор, чтобы проверить, если значение столбца 6 положительна:

$ awk 'NR==1{$7="ratio"}NR>1{ $7=$6>0?$3/$6:0}{print}' OFS='\t' file 
Col1 col2 col3 col4 col5 col6 ratio 
a s318 14 - - - 0 
b s319 25 b t568 15 1.66667 
c s320 8 c t569 12 0.666667 
- - - d t570 20 0 
f s322 42 f t571 5 8.4 
+1

@ user000001 спасибо, я получил совершенно то, что мне нужно – sara

Смежные вопросы