shellスクリプトででのFile-Readは以下のように行います。
対象環境
LinuxとMac限定です。Windowsはバーチャル環境やサーバーなどで対応ください。
※windowsは「コマンドプロンプト」なので・・・
また、「sh」ではなく「bash」を基本的に使っているので、shしか使えない環境の人は
1行目を書き換えて対応してください。
読み込みファイルは「hoge.txt」にしてますが、対象のファイル名に置き換えてください。
変数に読み込み
``で囲んだ中に通常のコマンドを書くことで返り値を拾うことができます。
テキストファイルの内容全てを取得
#!/bin/bash
txt=`cat hoge.txt`
echo $txt
テキストファイルの先頭30行を取得
#!/bin/bash
txt=`head -n 30 hoge.txt`
echo $txt
テキストファイルの下から30行を取得
#!/bin/bash
txt=`tail -n 30 hoge.txt`
echo $txt
テキストファイルの"hoge"のある行を取得
#!/bin/bash
txt=`grep hoge hoge.txt`
echo $txt
1行毎に読み込む
catを先に行うので、読み込むファイルが動的に書き換えされても、初回に読み込んだ回数分roopする
1行ごとに読み込まれてループするので、ログ処理などで便利に使えます。
#!/bin/bash
FILENAME="hoge.txt"
cat $FILENAME | while read LINE;do
echo $LINE
done
読み込みファイルが動的に変更される場合、roopの回数にも影響される。
※無限ロープに注意
#!/bin/bash
FILENAME="hoge.txt"
while read LINE;do
echo $LINE
done < $FILENAME
実行方法
上記のプロいグラムを「read.sh」という名前で保存した場合、以下のように実行します。
$ bash read.sh
同一階層にあるhoge.txtに対して処理が行われて結果がターミナルに表示されます。
0 件のコメント:
コメントを投稿