2017-09-21 9 views
-2

以下のSQLクエリがあります。linuxシェルスクリプトでforループで使用するファイルから文字列を文字列で呼び出す方法

select * from table where name in ('${name}); 

私はここで私はtxtファイルから文字列の値の名前を渡す必要がありますこれを自動化するための要件が​​あります。 テキストファイルには異なるネット特殊文字が含まれています。テキストファイルには次のように約200の名前があります。 3" - 11" DCBA-1234 5 "-8" ABC MNOP-3765 8 "-16" LMNOP ABCD-9964 ABC XYZ JKLM-1212 XYZ-1673

私の以下のコードがフェッチされていません完全な文字列値、これを達成する方法?

for name in `cat file.txt` 
do 
select * from table where name in ('${name}); 
done 

さらに詳しい情報があれば幸いです。

ありがとうございます!

+0

これはコマンドとして 'select'を実行しようとしていますが、データベースに渡すことはありません。つまり、いくつかの非常に適切なビットを残しておきます。 –

+0

ところで、[なぜ 'for'で行を読んでいないのか](http://mywiki.wooledge.org/DontReadLinesWithFor)と[BashFAQ#001](http://mywiki.wooledge.org/BashFAQ/001 )。 –

答えて

0
while read line; 
do 
    select * from table where name in $line 
done < file.txt 

試してください。

+0

私はすでに運がない上記を使ってみましたが、私はファイル – Samah

+0

はいからそれを読む必要があります。 file.txt。 –

+0

最初のステップでこれを渡すと、クエリのセットを実行する必要があります。 – Samah

関連する問題