0
我有兩個文件main.css和main_custom.css。我想在關鍵字的幫助下在main.css中找到合適的位置,並在標識的位置插入main_custom.css的內容。我正在嘗試使用shell腳本來達到這個目的。每個文件的代碼如下所示。Shellscript不讀取結束大括號
的main.css
[SOME_STUFF]
/*
==========================================================================
Author's custom styles
==========================================================================
*/
[SOME_MORE_STUFF]
main_custom.css
body {
padding-top: 50px;
padding-bottom: 20px;
}
script.sh
# Merge custom CSS into master CSS file
LINE_NO=0
while read LINE
do
((LINE_NO++))
if [[ $LINE == *"Author"* ]]
then
read LINE
((LINE_NO++))
if [[ $LINE == *"=="* ]]
then
read LINE
((LINE_NO++))
break
fi
fi
done <"main.css"
# Merge custom CSS into master CSS file
while IFS= read -r CUSTOM_LINE
do
sed -i -e "$LINE_NO i $CUSTOM_LINE" "main.css"
((LINE_NO++))
done <"main_custom.css"
生成的文件看起來是這樣的 -
的main.css
[SOME_STUFF]
/*
==========================================================================
Author's custom styles
==========================================================================
*/
body {
padding-top: 50px;
padding-bottom: 20px;
[SOME_MORE_STUFF]
現在,當我執行腳本,腳本會將前三行main_custom的.css文件,但不是用大括號括起來的文件。另外,我也在失去格式化。我究竟做錯了什麼?
請執行文件都有一個結尾的新行? – Eris
@Eris - main_custom.css沒有尾隨換行符。但是,如果我補充一點,'sed'在'a','c'或'i''後面抱怨錯誤信息'sed:-e expression#1,char 6:expected \'。 –