次のループの出力を別のループの下に追加したいのですが、出力ファイルでは "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
スクリプトの始めに