これは私が得るエラーです。変数の値が2でなければならないので失敗します(これを得るためにaを使用しましたselect * from tabel
)。その変数にスペースがありました。
+ 0 !=
2
./setjobs[19]: 0: not found.
この変数からスペースや改行文字をすべて削除するにはどうすればよいですか?わかりましたtr
、、sed
または助けが必要ですか?
これが私がすることです:
set_jobs_count=$(echo "set heading off;
select count(*) from oppar_db
where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \
sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME)
これは提案どおりに機能します。
| sed 's/[[:space:]]//g'
しかし、まだ次のような値を取得します。
set_jobs_count=
2
ベストアンサー1
出力に改行が残る理由sed 's/[[:space:]]//g'
は、データがsed
一度に1行ずつレンダリングされるためです。したがって、置換はデータの改行を置き換えることはできません(sed
まったく表示されるデータの一部ではありません)。
代わりに、次のものを使用できます。tr
tr -d '[:space:]'
これにより、空白文字、フォームフィード、改行、キャリッジリターン、水平タブ、垂直タブが削除されます。