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