ファイルの数と文字数を計算するスクリプト

ファイルの数と文字数を計算するスクリプト

こんにちは皆さん、私はこのクソの事前試験の練習のために本当に詰まっています。

演習:ファイル名(最初の引数)を取り、ファイル内の数字と文字数を数えるscryptを作成します。 Scryptはまた、これらすべての数字を合計する必要があります。

1 2 3 4 5
9 2 3 1 2 a l a i o l a 
9 2 ala ma kota 102

次のようにする必要があります。

 File ....... have 15 numbers and 16 letters.
 Sum of all of those numbers is 145.  

私の考えは、この練習にどのようにアクセスするかです(ステップバイステップ)。

  1. ファイル名キャプチャ(引数として)
  2. データ全体を1行に解析します(より簡単なソートのため)。
  3. データ全体を数値でソートします(このような結果が得られます1 2 3 4 5 6(...)102 aaaaaaikm(...)
  4. 合計と計算を容易にするために最初の数字をパラメータ($ 1 - $ 13)に設定+計算を容易にするために文字をパラメータに設定
  5. すべてをコンソールに表示
  6. 私の人生を楽しんでOverwatchをプレイします(冗談です。Linux学習{テスト前のかわいいもの}に戻ります)

    ついています。

    ステップ2。このデータを分析した後、次のような結果が得られました(見つけることができるほとんどすべてを試しました)。

    1 2 3 4 5 9 2 3 1 2 a l a i o l a 9 2 ala ma kota 102
    

実際、この3行を1つにマージする方法がわかりません。 2つのソートを試みるたびに最初に戻ります。

echo `cat kolos3 | xargs | sort -n `  

この運動を手伝ってくれる人がいればいいと思います。

答え1

grep -o入力を同じ行に接続するかどうかにかかわらず、ほとんどの操作はここで行われます。

-o、--matchのみ
一致する行の一致する(空でない)部分のみが印刷され、各部分は別々の出力行に表示されます。

文字数を数えてください。

grep -o "[[:alpha:]]" "$file" | wc -l

計算する数字:

grep -o "[[:digit:]]" "$file" | wc -l

しかし、あなたが望むなら数字:

grep -o "[[:digit:]]\+" "$file" | wc -l

数値を合計するには、次のいずれかのソリューションを使用できます。複数のコマンドライン引数を合計するbashスクリプトを作成する方法は?

この質問を次の人に伝えますbc

(grep -o "[[:digit:]]\+" "$file" | tr '\n' + ;echo 0)|bc

関連情報