変数からすべてのスペース、タブ、改行などを削除しますか?

変数からすべてのスペース、タブ、改行などを削除しますか?

これは私が得るエラーです。変数の値が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:]'

これにより、空白文字、フォームフィード、改行、キャリッジリターン、水平タブ、垂直タブが削除されます。

おすすめ記事