echo -e "55 11\n25 11.0" | awk '$2 ~ /11/{print $1}'
Я хочу только соответствовать «11», а не «11,0» значение 25. Любые советы?Awk печать соответствия точное содержание колонны
echo -e "55 11\n25 11.0" | awk '$2 ~ /11/{print $1}'
Я хочу только соответствовать «11», а не «11,0» значение 25. Любые советы?Awk печать соответствия точное содержание колонны
матча все поле:
% 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
echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/ {print $1}'
Убедитесь, что последнее поле не содержит десятичной точки.
[jaypal:~/Temp] echo -e "55 11\n25 11.0" | awk '$NF!~/\./{print $1}'
55
Учитывая, что название вопроса - «точное соответствие содержимого столбца», это слишком разрешительно. – Johnsyweb
@Johnsyweb Я согласен, я не мог придумать лучшее решение, а потом попробовал его решить. Должен ли я идти дальше и удалять его? –
+1 для '==' - вам не нужны регулярные выражения для всего. –