sed 腳本分隔符引起的問題unknown option to `s'


執行腳本sed:

source ../../conf.properties

target_dir=data_process_$DATE
current_date=$(date +%Y/%m/%d/%H)
echo $current_date
rm -rf $target_dir > /dev/null 2>&1 mkdir $target_dir # Generate the ql from the merge_table directory for ql in `ls merge_table | grep ql` do sed "s/%CHINADAASREDUCETASKS%/$MAPRED_REDUCE_TASKS/g" merge_table/$ql > $target_dir/$ql sed -i "s/%CHINDAASDATE%/$DATE/g" $target_dir/$ql sed -i "s/%current_date%/$current_date/g" $target_dir/$ql done

 報錯如下:

 

 

sed: -e expression #1, char 25: unknown option to `s'

 

 

原因:

因為路徑里面包含有“/”作為分隔符,這會和sed的替換操作的分隔符“/”引起混淆;所以改為#,只要不使用“/”做分隔符就可以解決這個問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM