Sha*_*hop 2 sed text-processing
我有一个如下所示的文件:
some
arbitrary number of
leading
lines
a prefix followed by wmd v0.0.0-20220406135915-ce5e3ee6c6bf
some
trailing
lines
Run Code Online (Sandbox Code Playgroud)
这只是文件外观的一个示例。对于我感兴趣的产品线,不变的部分是:
wmd v0.0.0-, 其次是如何编写一个sed命令,允许我用20220406135915-ce5e3ee6c6bfshell 变量中的值替换该部分new_text?
换句话说,如果new_text有值99999999999999-aaaaaaaaaaaa,我想找到将产生以下输出的命令<whatever goes here>部分:sed
$ sed -e "s/wmd v0.0.0-<whatever goes here>/wmd v0.0.0-$new_text/" my-file.txt
some
arbitrary number of
leading
lines
a prefix followed by wmd v0.0.0-99999999999999-aaaaaaaaaaaa
some
trailing
lines
Run Code Online (Sandbox Code Playgroud)
您可以使用\{..\}量词来指定字符类应匹配的次数。
sed -e "s/wmd v0\.0\.0-[0-9]\{14\}-[0-9a-f]\{12\}/wmd v0.0.0-$new_text/"
# ~ ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
另请注意,点在正则表达式中具有特殊含义。反斜杠使其字面匹配。
另请注意,如果$new_text包含斜杠或 sed 特有的其他一些字符,该命令可能会中断。
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |