卡了一下午的字符串匹配
后来用 grep 和 sed 配合正则写出了魔法一样的语句
1 | old_imagetag=$(cat ${tableFile} | grep -o "${component}:[^ \|]*" | tail -1) |
grep -o 可以只选中匹配到的字符串,而不是包含它的一整行,only 的意思
${component}:[^ \|]* 正则,开头是component变量的值加上一个冒号,结尾是空格加上一个|,\用来转义,* 选中中间的任意字符
tail -1 可以用来选到最后一个匹配项
sed -i 可以对同一个文件原地替换,in place 的意思
s/ 表示 substitute,替换
这就里就是把 old_imagetage 加上 strikethrough, 然后补上 | 标识表格里当前行的结尾,\n 换行,
新的一行 | | ${imagetag} 这里是第一列空,第二列是 imagetag
结尾不写 | 的理由是在替换的时候没有涉及到原本那一行的结尾标识,可以继续沿用