我有一个包含数字行和文件的文件:
2 20 3 file1.txt
93 21 42 file2.txt
52 10 12 file3.txt
如何使用grep,awk或其他命令给我每行的第一个数字,以便它只显示:
2
93
52
感谢。
答案 0 :(得分:5)
有很多方法可以做到这一点。以下是一些(假设输入文件为gash.txt
):
awk '{print $1}' gash.txt
或使用纯粹的bash:
while read num rest
do
echo $num
done < gash.txt
或使用&#34; classic&#34; sed
:
sed 's/[ \t]*\([0-9]\{1,\}\).*/\1/' gash.txt
或将{ERE与sed
一起使用:
sed -E 's/[ \t]*([0-9]+).*/\1/' gash.txt
使用cut
是有问题的,因为我们不知道空格是空格还是制表符。
顺便说一句,如果你想添加总行数:
awk '{total+=$1} END{print "Total:",total}' gash.txt
答案 1 :(得分:2)
您可以使用awk
awk '{print $1}' file
答案 2 :(得分:1)
您可以使用:
grep -oE '^\s*[0-9]+' filename
为了处理领先的空间,我目前没有选择。你最好接受awk的回答。