sed用变量替换

时间:2015-06-25 07:23:06

标签: bash replace sed

我想用一个给定角度的弧度的正确计算值替换一条说alpha = -pi/...的行,即变量n1

#!/bin/bash

read -p "Angle in degrees : " n1

## Convert angle to radians

printf -v "n2" "%.0f" $(echo | bc | awk "BEGIN {print 180/$n1}")

echo "$n1 Degrees = pi/$n2"

printf -v "n3" "alpha = -pi/$n2;"

echo "${n3}"

cd /home/src/octave_scripts/makemesh_rot


sed  "s/alpha =.*/$n3/" makemesh_rot.m > makemesh_rot.m_temp

我已经浏览过并尝试了一些将"s/alpha =.*/$n3/"更改为's/alpha =.*/"$n3"/'的变体,还有一些其他方法可以使用alpha = -pi/...替换$n3

1 个答案:

答案 0 :(得分:1)

我经常这样做如下:

sed -i -e "s/alpha = .*/alpha = ${n3}/g" makemesh_rot.m

-i参数直接替换现场内容,这会使临时文件过时。