- 締切済み
シェルスクリプトの制御構文について
いつもお世話になっております。 当方、RHELで bashシェルを使用しており、制御構文を用いて 『 file1.txt にある数値が file2.txt に含まれているかどうか、また、いくつ含まれているかカウント』するスクリプトを作りたいと思っております。 ファイルの中身は下記のようになっています。 [file1.txt] [file2.txt] 10250 10064 10298 10250 11674 12866 13298 13119 28952 13201 34966 13298 37641 37641 上記の例であれば、10250,13298,37641 が共通のものなので その数 3 というものを求めたいのです。 while文やfor文を用いて繰り返し処理をするのでは、と思い調べてはみたのですが 知識が乏しく構文を書くことが出来ませんでした。 また、PerlやRuby等使わず、シェルスクリプトのみで実行したいです。 勉強不足でとても初歩的なことを伺っているとは重々承知ですが、 どなたかお力を貸していただけないでしょうか。 宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
ソート済みの2ファイルの共通部分を取るのはcommコマンドで出来ます。 comm -12 file1.txt file2.txt | wc -l ファイルがソートされてないのなら、ソートしてから処理します。 comm -12 <(sort file1.txt) <(sort file2.txt) | wc -l
- trapezium
- ベストアンサー率62% (276/442)
> その数 3 というものを求めたいのです それだけなら fgrep -f file1.txt file2.txt | wc -l とかだけど。制御構文とか関係なく。