我正在做一些wiki / markdown转换,并且有这样的字符串:
[[Moo Cow]]
我希望它是这样的:
[Moo Cow](Moo-Cow.html)
如何使用sed
?
答案 0 :(得分:2)
你可以像这样减少你的sed表达式:
sed -i 's/\[\[\([^]]*\)]]/[\1](\1.html)/g;:a;s/\(]([^) ]*\) /\1-/g;ta;' file
或perl:
perl -pe's/\[\[([^]]*)]]/$a=$1;$a=~y# #-#;"[$1]($a.html)"/ge' file
答案 1 :(得分:0)
这是一个sed
命令,可以为您执行此操作:
sed -i 's/\]\]/\]\(\.html\)/g; s/\[\[/\[/g; s/\[\(.*\)\](\.html)/\[\1\](\1.html)/g; :a;s/\(([^)]*\) /\1-/;ta' filename.md
不,那不漂亮。是的,这很难看。但是,它有效。
答案 2 :(得分:0)
只需使用awk:
$ awk '{gsub(/[][]/,""); x=$0; gsub(/ /,"-"); printf "[%s](%s).html\n", x, $0}' file
[Moo Cow](Moo-Cow).html