ループにレコードを追加するには?

ループにレコードを追加するには?

次のループの出力を別のループの下に追加したいのですが、出力ファイルでは "abc3"の結果のみを取得します。

以下のスクリプトが見つかりました。変更について教えてください。よろしくお願いします。

for i in abc1 abc2 abc3
do
SELECT_QUERY_1="select substring('$i',4,len('$i')-7) as Table_Name,COLUMN_NAME,ORDINAL_POSITION,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = '$i'  and ORDINAL_POSITION <= (select max(ORDINAL_POSITION)-4 from INFORMATION_SCHEMA.COLUMNS where table_name = '$i')"

echo -e `/opt/mssql-tools/bin/sqlcmd -S server_name -U username -P user -d db -Q "$SELECT_QUERY_1"  -o "out.txt"`
sed "s/^[ \t]*//" -i out.txt

mv out.txt /home/results/out.txt

done

ベストアンサー1

パスの変更 mv out.txt /home/results/out.txt

到着

cat out.txt >> /home/results/out.txt

3つの結果をすべて1つのファイルに入れます。このコマンドを使用すると、mv毎回ファイルが上書きされます。そのため、最終結果しか得られません。

そのファイルに古いデータを保存したくない場合は、

rm /home/results/out.txt

スクリプトの始めに

おすすめ記事