Input: [[target|visible]]
Output: visible
这是我的尝试:
's:\[\[\[^\|]*|\(.*\)]]:\1:g'
(未读和间隔以便于阅读:
's: [[ [^\|]* | (.*) ]]:\1:g'
)
但它不起作用。
编辑:解决了它:
's:\[\[[^]\|]*\|\([^]]*\)]]:\1:g'
答案 0 :(得分:0)
试试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
答案 1 :(得分:0)
您可以将扩展正则表达式与sed -r
:
echo '[[target|visible]]' | sed -r 's:^\[\[[^\|]*\|(.*)\]\]$:\1:'
我没有找到如何将|
与基本正则表达式匹配...