我有一个文件,该行有多次变体:
source = "git::https://github.com/ORGNAME/REPONAME.git?ref=develop"
我正在传递变量中的标记名称。我想找到以source
开头的每一行,并更新文件中的那一行
source = "git::https://github.com/ORGNAME/REPONAME.git?ref=$TAG"
这应该可以用awk和sed完成,但是有一些困难使它工作。任何帮助将不胜感激!
最佳, 可人
编辑:在这种情况下,它表示“开发”,但它也可以设置为“feature / test1”或“0.0.1”。
Edit2:带有“source”的行也缩进三或四个空格。
答案 0 :(得分:0)
$ sed '/^source/s/ref=develop"$/ref=$TAG"/' file
替换ref = develop"在ref = $ TAG"行的末尾对于以source开头的行。
答案 1 :(得分:0)
这应该做:
sed 's/^\([[:blank:]]*source.*[?]ref=\)[^"]*\("\)/\1'"$TAG"'\2/' file