Shell脚本新手。 我有档案。样本如
sample.txt的
some text1
txt2
element : /home/user/somelocation text1
loc : /home/user/somelocation text2
我正在尝试编写shell脚本,用/home/user/
element : /home/testuser/somelocation text
的行
搜索文本和替换测试都是可变的,无法从用户那里获得。
#!/bin/csh
# Sample searchStr="/home/user/"
set searchStr=$1
# Sample rplcStr="element : /home/testuser/somelocation text"
set rplcStr=$2
sed -i '/$searchStr/c\$rplcStr' sample.txt
但这不起作用。
预期产出
some text1
txt2
element : /home/testuser/somelocation text
如何更换?
答案 0 :(得分:1)
您可以试试sed
:
sed "/^element :/s|^.*$search.*$|$replace|g" file
<强>测试强>
$ search="/home/user/"
$ replace="element : /home/testuser/somelocation text"
$ sed "/^element :/s|^.*$search.*$|$replace|g" file
some text1
txt2
element : /home/testuser/somelocation text
loc : /home/user/somelocation text2