我有很多这样的行:
a|b|c
e|f|2
h|i|j
我想在第3列中找到仅包含数字的第一行(这将是示例中的第二行)。如何在不倾倒所有数据的情况下将其打包并将其管道化?
答案 0 :(得分:1)
您可以在grep:
中使用-m1
选项
grep -m1 "[0-9]$" file
根据man grep
:
-m num, --max-count=num
Stop reading the file after num matches.
或者使用awk更准确地做到:
awk -F'|' '$3 ~ /^[0-9]+$/{print; exit}' file
e|f|2
答案 1 :(得分:1)
POSIX解决方案是使用sed
并在第一场比赛后退出:
sed -n '/|[0-9]*$/{p;q;}' file # print and quit