2016-11-22 2 views
0

私は、データファイルの一部を変数(姓、名、部屋など)に読み込む必要があるプロジェクトに取り組んでいます段落内に表示され、すべての名前がカバーされるまでループされます。UNIX(Bash):文字列をテキストに使用する変数に分割する

James,Robert,M,E162K,5101 Evergreen, Dearborn,Mi,48128 
Fulton,Brent,M,E162I,5101 Evergreen, Dearborn,Mi,48128 
Conner,Marrci,F,P262J,5101 Evergreen, Dearborn,Mi,48128 
Conti,Anthony,M,P252F,5101 Evergreen, Dearborn,Mi,48128 

そして、それは以下のテキストに供給する必要があります:

データファイルがある、私はどのように確認していない

echo "Dear Mr/Mrs. $lastName" >>project2.output 
echo "Welcome to Widgets, Inc. $firstName. This letter is to inform you of your assigned office space at 
Widgets, Inc. is in the main $building building. Your office is $room located at 5101 Evergreen, 
Dearborn Mi. 48121. 

:リストされた変数は、対応する名前に置き換えられますどんな助けでも大いに感謝されるようにこれをしてください!

+0

を使用しています...どの言語ですか? Unixはオペレーティングシステムですが、何らかのシェルでこれをしようとしていますか?もしそうなら、どちらですか?もしそうなら、perl、python、nodeのような汎用スクリプト言語ではなく、シェルでこれをやっている理由は何ですか? –

+0

'echo'文があれば、シェルスクリプトを見ていると思います。おそらく' bash'です。この場合、 'IFS = whileのようなものは、lname fnameの初期ルームアドレスを読み込みます。 do ..... done twalberg

答えて

5

これはどうですか?

#!/usr/bin/env bash 

while IFS="," read -r firstName lastName Sex building address city state zip; do 
    echo -ne "Dear Mr/Mrs. $lastName, \n" 
    echo "Welcome to Widgets, Inc. $firstName. This letter is to inform you of your assigned office space at Widgets, Inc. is in the main $building building. Your office is $room located at $address,$city $state $zip" 
done < datafile 
+0

を開始するのに適しています。 'done Copache

+0

ここで 'datafile'は入力ファイルです。その標準を取って。 – NinjaGaiden

+0

ありがとう。出来た。以前はIFSコマンドについて聞いたことがありませんでした。非常に便利! – Copache

関連する問題