これを行う方法があるかどうか疑問に思います。
lab-2:/tmp# echo 46692,46694,46696,46704,46708,46709,46713,46730,46736,46574 > deletelist.txt
lab-2:/tmp# cat deletelist.txt
46692,46694,46696,46704,46708,46709,46713,46730,46736,46574
その後、psqlを介して削除コマンドにリストを渡したいと思います。これは私が今まで試してきたものですが、見てわかるように失敗します。
lab-2:/tmp# psql -U test testdb -c "Delete from widgets where id in (" <deletelist.txt ")"
psql: warning: extra command-line argument ")" ignored
ERROR: syntax error at end of input
LINE 1: Delete from mist_cdr where id in (
^
編集1
提案された回答を試すと、次の結果が表示されます。
lab-2:/tmp# psql -U test testdb -c "delete from widgets where id in ( $(</tmp/deletelist.txt ))"
ERROR: syntax error at or near ")"
LINE 1: delete from widgets where id in ( )
^
lab-2:/tmp#
また、以下のようにパスなしで同じコマンドを試しました。
lab-2:/tmp# psql -U test testdb -c "delete from widgets where id in ( $(<deletelist.txt ))"
しかし、結果は同じです。
答え1
コマンドの置き換えに使用してみてください。
psql -U test testdb -c "Delete from widgets where id in ( $(<deletelist.txt) )"