shell腳本中sed命令使用變量行號


當在shell腳本中,需要先用grep獲取行號,再利用行號插入數據時,可以這樣使用

insert_str="12312"
num=`grep -rn $str ${file}|awk -F ':' '{print $1}'`
sed -i $num"i"$insert_str  ${file}

請注意,變量和開頭引號之間不能有空格

或者這樣

sed -i "$num i$insert_str" $file

其中,i表示在行前插入,a表示在行后插入

如果插入字符串有空格,可以使用\轉義

insert_str="\ \ \ 123"

 

sed 中 單引號,雙引號 是有區別的.

感覺單引號並不能 解析 shell中的變量,需要用雙引號才能解析。從上面的例子可以看出來。

export new=good

echo "hello old frank" |sed "s/old/${new}/g"

結果如下:

hello good frank

 


免責聲明!

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



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