2017-05-12 1 views
0

私はパイプ入力を受け取り、最初のカラムをカットして合計を返すbashスクリプトを実装しようとしています。違いは、カットがファイルからではなく、パイプされた入力からであることです。例:Ubuntuのbashスクリプトで最初のカラムをグレープして切り取りする

#!/bin/bash 
total=$(cut -f1 $1 | numsum) 
echo $total 

基本的に、私のシナリオでは、最初の列は常に渡された入力からのものになります。

例usuageは次のとおりです。

./script.sh "cat data.txt | grep -i status | grep something" 

data.txtをが含まれています

はどのようにこれが達成することができます:

1 status 
2 something 

これは、のようなものを作るのだろうか?私はカットだけがファイルのために働くことに気付いた。私はGoogleで例を見ることができません。

+0

「cat data.txt | | 。/ script.sh'? – melpomene

+0

これは私の会社が推奨するオプションです。だからこれは限界です。上記の例はかなり簡単ですが、これはもっと大きなものに使用されます。 –

+0

なぜawk '/ something/{print $ 2}' data.txtをやってみませんか? –

答えて

0

私はこの問題を自分で解決することができました。コードは次のとおりです。

#!/bin/bash 
total=$(eval $1 | awk '{sum+=$1} END {print sum}') 
echo $total 
関連する問題