使用 bash 脚本将 sql 结果导出到 .txt 时如何删除“\n”?
How do I remove "\n" when export sql result to .txt with bash script?
我想将 sql 结果导出到 .txt,bash 我的结果是这样的:
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' < yourfile.txt
和 sed
,但它仍然在新行中有“\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"
这是我使用cat -a
时的结果:
campaign_id^Ivascode$
F190720NBWCA004^IHidden_HVC_Revamp_7_Pre_MT_OP^M\n$
F190720NBWCA004^IHVC_Revamp_10_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_10_Pre_T_OP^M\n$
F190720NBWCA004^IHVC_Revamp_10_Pre_B_OP^M\n$
F190720NBWCA004^IHVC_Revamp_11_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_11_Pre_MT_OP^M\n$
F190720NBWCA004^IHVC_Revamp_11_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_12_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_12_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_13_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_13_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_14_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_14_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_15_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_15_Pre_UMB_OP^M\n$
我希望结果如下所示:
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
谁能帮我实现我的目标?
看起来你的 DOS 行以 \r
结尾,每行末尾都有文字 \n
。
您可以使用:
/usr/bin/mysql -host -user -pass -database -e"$msisdn" | sed $'s/\r\\n//'
我想将 sql 结果导出到 .txt,bash 我的结果是这样的:
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' < yourfile.txt
和 sed
,但它仍然在新行中有“\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"
这是我使用cat -a
时的结果:
campaign_id^Ivascode$
F190720NBWCA004^IHidden_HVC_Revamp_7_Pre_MT_OP^M\n$
F190720NBWCA004^IHVC_Revamp_10_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_10_Pre_T_OP^M\n$
F190720NBWCA004^IHVC_Revamp_10_Pre_B_OP^M\n$
F190720NBWCA004^IHVC_Revamp_11_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_11_Pre_MT_OP^M\n$
F190720NBWCA004^IHVC_Revamp_11_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_12_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_12_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_13_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_13_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_14_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_14_Pre_UMB_OP^M\n$
F190720NBWCA004^IHVC_Revamp_15_Pre_OP^M\n$
F190720NBWCA004^IHVC_Revamp_15_Pre_UMB_OP^M\n$
我希望结果如下所示:
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
谁能帮我实现我的目标?
看起来你的 DOS 行以 \r
结尾,每行末尾都有文字 \n
。
您可以使用:
/usr/bin/mysql -host -user -pass -database -e"$msisdn" | sed $'s/\r\\n//'