2016-04-20 8 views
2

私は数字の行を持つファイルとファイルがあります:私はちょうど私の最初の数字を与えるためにはgrep、awkは、または他のいくつかのコマンドを使用するにはどうすればよいGrepの行の最初の数

2 20 3 file1.txt 
    93 21 42 file2.txt 
    52 10 12 file3.txt 

を各行には次のように表示されます:

2 
93 
52 

ありがとうございます。

答えて

4

非常に多くの方法を使用することができます。

awk '{print $1}' gash.txt 

又は純粋なbashの使用:ここではいくつかの(gash.txtを入力ファイルであると仮定される)

sed 's/[ \t]*\([0-9]\{1,\}\).*/\1/' gash.txt 

又はsedとEREを使用して:

while read num rest 
do 
    echo $num 
done < gash.txt 

をまたは使用sed "古典的な" :

sed -E 's/[ \t]*([0-9]+).*/\1/' gash.txt 

cutを使用すると、空白が空白かタブかわからないので問題があります。あなたが行の合計数を追加したい場合はところで

は、:

awk '{total+=$1} END{print "Total:",total}' gash.txt 
+0

ありがとう、あなたは私の心を合計で読む:) –

+1

また、複数のファイルを 'wc'に渡すと、デフォルトで合計が表示されることに注意してください。 – anishsane

0

あなたはこれを使用することができます:

grep -oE '^\s*[0-9]+' filename 

は先頭のスペースを扱うために、私は選択肢のうち、現在はね。あなたはawkの答えをうまく受け入れます。

+1

をあなたは '[]'単一のスペースのため(それが援助の可読性を行いますが)の最初のセットを必要としません、ファイル形式がわからないので、 '[\ t] *'や '\ s *'を考慮する方が良いかもしれません。 – cdarke

+0

@cdarke:ありがとう、答えを更新しています。 – blackSmith

+0

それはうまく、私は数字が欲しかった! –

2

あなたはこれを行うにはawk

awk '{print $1}' file 
関連する問題