當在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