こんにちは皆さん、私はこのクソの事前試験の練習のために本当に詰まっています。
演習:ファイル名(最初の引数)を取り、ファイル内の数字と文字数を数える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行に解析します(より簡単なソートのため)。
- データ全体を数値でソートします(このような結果が得られます1 2 3 4 5 6(...)102 aaaaaaikm(...)
- 合計と計算を容易にするために最初の数字をパラメータ($ 1 - $ 13)に設定+計算を容易にするために文字をパラメータに設定
- すべてをコンソールに表示
私の人生を楽しんで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