工作,我有一個shell腳本,如下所示:SED命令不會在shell腳本
#!/bin/bash
for file in $1/*.html; do
echo "Working on $file ..."
# delete headers in html files.
sed -n '1,9d' $file
# delete the last 4 lines of the file.
sed -n -e :a -e '1,4!{P;N;D;};N;ba'
# ant runs regex task on all apt files
ant -Dtarget.file=$file
# all .html are changed to .md
mv $file `echo $file | sed 's/\(.*\.\)html/\1md/'` ;
done
但腳本掛在第一sed命令,我必須強制退出。我想知道我設置的方式有什麼問題嗎?
如果我刪除前兩個sed命令,我可以運行腳本的其他部分,包括最後一個包含sed命令的部分。
'mv'讓我感到畏懼,因爲沒有用的昂貴的fork到另一個'sed'。如果您只想替換存儲在變量中的文件名中的擴展名,請使用'mv $ file $ {file%.html} .md'。 – Jens