Bashでファイルの内容を操作する方法を学び、次のコード例を見つけました。
while IFS=, read -r col1 col2
do
echo "I got:$col1|$col2"
done < myfile.csv
~によるとOpen Group 基本仕様 6号:
読み取りユーティリティは標準入力から1行を読み取る必要があります。
read
私の理解が正しい場合、これは、たとえば、行を読むには、コマンドの最後に次を追加するmyfile.csv
必要があることを意味します。< myfile.csv
read
read -r col1 col2 < myfiles.csv
ただし、添付のコードではキーワードの後に< myfile.csv
追加されます。done
なぜそんなことですか?
ベストアンサー1
この例では、リダイレクトの目的のために、whileループ(条件付き)のすべてのエントリの標準入力は次のとおりです。myfile.csv
提案どおりにリダイレクトできますが、読み取る呼び出しごとにリダイレクトが個別に設定され、毎回最初の行だけが読み取られます。