Você pode usar tr
, como em tr -d '0125'
, o que removerá espaços, tabulações, retornos de carro e novas linhas.
Este é o erro que estou recebendo e está falhando devido a uma variável cujo valor deve ser 2 (estou recebendo isso usando select * from tabel
).
Estou obtendo espaços nessa variável.
+ 0 !=
2
./setjobs[19]: 0: not found.
Como removo todos esses espaços ou uma nova linha dessa variável?
Pode tr
, sed
ou alguma coisa ajudar?
Isso é o que estou fazendo:
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)
Isso funciona como sugerido:
| sed 's/[[:space:]]//g'
Mas ainda obtenho um valor como:
set_jobs_count=
2
Em ksh, bash ou zsh:
set_jobs_count=…
set_jobs_count=${set_jobs_count//[[:space:]]/}
Em qualquer shell, você pode remover os espaços em branco iniciais e finais e normalizar todos os espaços em branco intermediários em um único espaço como este:
set +f
set -- $set_jobs_count
set_jobs_count=$*
set -f
set +f
desativa a globulação; Se você sabe que os dados não contêm nenhum dos caracteres \[?*
, você pode omiti-lo.
Tags sed tr shell whitespace newlines