Sed脚本转换维基百科链接


Input: [[target|visible]]
Output: visible

这是我的尝试:

's:[[[^|]*|(.*)]]:1:g'

's: [[ [^|]* | (.*) ]]:1:g'

)

但是行不通。

编辑:解决它:

's:[[[^]|]*|([^]]*)]]:1:g'

您可以在sed -r:

中使用扩展正则表达式
echo '[[target|visible]]' | sed -r 's:^[[[^|]*|(.*)]]$:1:'

我没有发现如何匹配|与基本regexp…

试试awk,它更适合这个工作。分割"|",然后得到第二个字段。就是这么简单。根据需要去除]

$ echo "[[target|visible]]" | awk -F'|' '{gsub(/]/,"",$2);print $2}'
visible

或任何可以轻松拆分字符串的工具。例如Ruby (1.9 +)

$ echo "[[target|visible]]" | ruby -e 'puts gets.split("|")[-1].gsub(/]/,"")'
visible

最新更新