我想用bash将sql结果导出到.txt,
campaign_id vascode
F190720NBWCA004 Hidden_HVC_Revamp_7_Pre_MT_OP
\n
F190720NBWCA004 HVC_Revamp_10_Pre_MKIOS_OP
\n
F190720NBWCA004 HVC_Revamp_10_Pre_MT_OP
\n
F190720NBWCA004 HVC_Revamp_10_Pre_UMB_OP
\n
F190720NBWCA004 HVC_Revamp_11_Pre_MKIOS_OP
\n
F190720NBWCA004 HVC_Revamp_11_Pre_MT_OP
\n
F190720NBWCA004 HVC_Revamp_11_Pre_UMB_OP
\n
我尝试使用tr -d'\ n' 我想要类似的结果 有人可以帮助我吗?也许我做错了workDirectory="/home/data"
tanggal=`date '+%Y%m%d' `
echo "Begin Generating ${tanggal}"
msisdn="SELECT * from database;"
echo "`date '+%T'` : Download MSISDN Data.."
/usr/bin/mysql -host -user -pass -database -e"$msisdn" | tr -d '\n'> ${workDirectory}/data/"${tanggal}"_msisdn.txt &
wait
echo "done"
campaign_id vascode
F190720NBWCA004 Hidden_HVC_Revamp_7_Pre_MT_OP
F190720NBWCA004 HVC_Revamp_10_Pre_MKIOS_OP
F190720NBWCA004 HVC_Revamp_10_Pre_MT_OP
F190720NBWCA004 HVC_Revamp_10_Pre_UMB_OP
F190720NBWCA004 HVC_Revamp_11_Pre_MKIOS_OP
F190720NBWCA004 HVC_Revamp_11_Pre_MT_OP
F190720NBWCA004 HVC_Revamp_11_Pre_UMB_OP
答案 0 :(得分:1)
好像您的DOS行结尾\r
,而文字\n
位于每行结尾。
您可以使用:
/usr/bin/mysql -host -user -pass -database -e"$msisdn" | sed $'s/\r\\\\n//'
答案 1 :(得分:0)
要删除空行时,可以使用
/usr/bin/mysql -host -user -pass -database -e"$msisdn" | grep .
当您要删除包含两个字符\n
的行(而不是换行符)时,可以使用
/usr/bin/mysql -host -user -pass -database -e"$msisdn" | sed '/^\\n$/d'