シェルスクリプトを使用して、複数のファイルから数学演算を作成します

p.louis

複数のファイルがあります。

fname1 含まれています:

red=5
green=10
yellow=2

fname2 含まれています:

red=10
green=2
yellow=2

fname3 含まれています:

red=1
green=7
yellow=4

これらのファイルから読み取り、各色の数値を合計し、その合計を新しいファイルにリダイレクトするスクリプトを作成したいと思います。

新しいファイルには次のものが含まれます。

red=16
green=19
yellow=8
わたし

[awk]はあなたの友達です:

awk 'BEGIN{FS="=";}
            {color[$1]+=$2}
     END{
         for(var in color)
          printf "%s=%s\n",var,color[var]
        }' fname1 fname2 fname3 >result

それをする必要があります。


上記のものの謎を解く

  • 内部に含まれて''いるものはすべてawkプログラムです。
  • 内部のものBEGINは一度だけ、つまり最初に実行されます
  • FSは、フィールド区切り文字を表すawk組み込み変数です。
  • FSをに設定する=と、awkは=フィールド/列を区切るために使用します。
  • デフォルトでawkは、各行はレコードと見なされます
  • その場合=、区切り文字として各レコードに$ 1と$ 2で示される2つのフィールドがあります
  • {color[$1]+=$2}(まだ存在していない場合)のような色の名前を連想配列を作成keyし、+=追加しvalue、この配列要素にFIELD2のを。作成時の連想配列はゼロに初期化されることを忘れないでください。
  • これは、awkに入力された3つのファイルfname1、fname2、fname3に対して繰り返されます。
  • 内部のEND{}すべては、最後に、つまり終了直前にのみ実行されます。
  • for(var in color) は、連想配列の解析に使用されるforloopのスタイルです。
  • ここvarになりますkeyし、color[key]値を指します。
  • printf "%s=%s\n",var,color[var] 自明です。

注意

  • すべてのファイル名がで始まる場合は、代わりにfname置くこともできますfname*fname1 fname2 fname3
  • これは、どのファイルにも空白行がないことを前提としています

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

シェルスクリプトを使用してファイルからファイル名を抽出します

シェルスクリプトを使用してファイルから特定の列を抽出します

スクリプトを使用して、複数のマシンのディレクトリの下にファイルを作成しますか?

forループを使用して、ファイルディレクトリから各ファイルのリストオブジェクトを作成します

シェル スクリプトを使用して複数のファイルから特定の文字列を解析する方法

シェルスクリプトを使用して複数の.javaファイルを実行する方法

シェルスクリプトを使用して複数のROS起動ファイルを呼び出す

シェルスクリプトを使用してjsonファイルからKey:valueペアを削除します

シェルスクリプトを使用してftpから古いファイルを削除します

UNIXシェルスクリプトを使用してファイルから1行を削除します

複数のサブディレクトリからファイルにフォルダ名をコピーして追加するシェルスクリプト

シェルスクリプト:最初のファイルを複数のフォルダーから1つのフォルダーにコピーします

シェルスクリプトを使用して特定のログファイルからCSVファイルを作成する

シェルスクリプトを使用して、複数のエントリのファイル内で日付をエポック形式に変換します

シェルスクリプトを使用して、複数のエントリのファイル内で日付をエポック形式に変換します

matplotlib savefigを使用してファイルオブジェクトを保存し、複数のsvg図からtarファイルを作成します

knitrを使用してrスクリプト関数から複数のファイルを生成する方法

シェルスクリプトを使用してUNIXのファイルから情報を抽出する

シェルスクリプトを使用してUNIXのファイル名から日付を抽出する

シェルスクリプトを使用してファイルから特定の値を抽出する

bashシェルスクリプトを使用してプロパティファイルから複数の値を読み取る

Linuxシェルスクリプトを使用して複数のファイルの名前を変更

bashスクリプトを使用して.CSVファイルから複数の値を出力する

シェルスクリプトを使用して同時に複数のファイルを開く

シェルスクリプトを介して複数のファイルの名前を変更する

シェルスクリプトを使用してファイルを並べ替えてから、古いファイルを削除します

シェルスクリプトとDockerを使用して、複数のjarファイルを順番に(同時にではなく)実行します

複数のファイルのスクリプトを使用してPowerScriptモジュールを作成する

単一のテキストファイルでは、シェルまたはbashスクリプトを使用して複数の操作が必要です

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  3. 3

    Python / SciPyのピーク検出アルゴリズム

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    androidsoongビルドシステムによるネイティブコードカバレッジ

  7. 7

    ZScalerと証明書の問題により、Dockerを使用できません

  8. 8

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    二次導関数を数値計算するときの大きな誤差

  11. 11

    Ansibleで複数行のシェルスクリプトを実行する方法

  12. 12

    画像変更コードを実行してもボタンの画像が変更されない

  13. 13

    Reactでclsxを使用する方法

  14. 14

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  15. 15

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  16. 16

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  20. 20

    好き/愛の関係のためのデータベース設計

  21. 21

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

ホットタグ

アーカイブ