2012-01-12 3 views

ответ

5

матча все поле:

% echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/{print $1}' 
55 

Если вы сделал хотите, чтобы соответствовать численно, вы не должны использовать регулярное выражение, конечно (текущий один будет также соответствовать 6119.42):

% echo -e "55 11\n25 11.0" | awk '$2 == 11 { print $1 }' 
55 
25 
+2

+1 для '==' - вам не нужны регулярные выражения для всего. –

0
echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/ {print $1}' 
0

Убедитесь, что последнее поле не содержит десятичной точки.

[jaypal:~/Temp] echo -e "55 11\n25 11.0" | awk '$NF!~/\./{print $1}' 
55 
+0

Учитывая, что название вопроса - «точное соответствие содержимого столбца», это слишком разрешительно. – Johnsyweb

+0

@Johnsyweb Я согласен, я не мог придумать лучшее решение, а потом попробовал его решить. Должен ли я идти дальше и удалять его? –

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