我的目标是将 NEWS 格式( 的输出appstream-util appdata-to-news
)转换为 markdown 格式(在 GitHub/GitLab 上使用)。
对我来说,一个很好的近似是从这里开始:
Version 0.5.1
~~~~~~~~~~~~~
Released: 2019-01-03
* This is a test with a ~ tilde ~~~~
* Second line
对此
Version 0.5.1
=============
Released: 2019-01-03
* This is a test with a ~ tilde ~~~~
* Second line
但我目前的解决方案tr '~' '='
给了我这个:
Version 0.5.1
=============
Released: 2019-01-03
* This is a test with a = tilde ====
* Second line
查找仅包含的所有行的正则表达式~
应该是这样的:^~*$
但是,如何使用 bash/sed/awk 替换相同数量的=
?
答案1
您可以对仅包含波形符的行进行模式匹配,然后执行逐字符替换
sed '/^~*$/s/~/=/g'
答案2
我尝试使用下面的 sed 命令,效果很好
Command: sed '/Version/{n;s/~/=/g}' filename
e
n_linux_example ~]# sed '/Version/{n;s/~/=/g}' filename
Version 0.5.1
=============
Released: 2019-01-03
* This is a test with a ~ tilde ~~~~
* Second line
[root@praveen_linux_example ~]#