• 締切済み

Linuxでのシェルプルグラミングでファイル内の数字の読み込み

Linuxでのシェルプログラミングについての質問です。 (#!/bin/shを使ってます。) 改行、空白、数字をランダムに含むファイルを複数読み込んで、それぞれのファイルから数字だけ一個ずつ抜き出すにはどうすればいいでしょうか? 最初に二個の数字(A,Bとする)読み込んで、その二つの最大公約数(C)を計算した後、さらに次の数字(D)を読み込んで次は先ほどの公約数(C)と新しく読み込んだ数字(D)の最大公約数(E)を計算して・・・を繰り返していくプログラムを作ろうとしています。 最大公約数を計算するwhile loopはできています。数字はファイルから読み込まれるため、一個ずつ空白、改行を無視しながら読み込んでいかなければいけないと思うのですが、どのようにやっていけばいいのかわかりません。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

ファイルがそう大きくなければ、こんな感じで簡単に。 for n in `cat file` do echo $n done ファイルが非常に大きければ、まず空白を改行に直して、空行を取り除いて、1行ずつ読む。 cat file | tr ' ' '\n' | grep -v '^$' | while read n do echo $n done

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.2

sed とか活用すれば、正規表現を使えるんじゃないかな。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

数字が 1行に (高々) 1個だけあって, しかも前後に余計な空白がないなら grep でも使えばいいと思う.

関連するQ&A