Input: [[target|visible]]
Output: visible
링크 내 시도입니다 :나오지 스크립트는 여기
's:\[\[\[^\|]*|\(.*\)]]:\1:g'
(가독성을위한 unesacped 및 간격 :
's: [[ [^\|]* | (.*) ]]:\1:g'
)
그러나 그것은 작동하지 않습니다.
편집 :이 작업에 대한 더 적합,
's:\[\[[^]\|]*\|\([^]]*\)]]:\1:g'
Input: [[target|visible]]
Output: visible
링크 내 시도입니다 :나오지 스크립트는 여기
's:\[\[\[^\|]*|\(.*\)]]:\1:g'
(가독성을위한 unesacped 및 간격 :
's: [[ [^\|]* | (.*) ]]:\1:g'
)
그러나 그것은 작동하지 않습니다.
편집 :이 작업에 대한 더 적합,
's:\[\[[^]\|]*\|\([^]]*\)]]:\1:g'
당신은 sed -r
와 정규 표현식을 확장 사용할 수 있습니다
echo '[[target|visible]]' | sed -r 's:^\[\[[^\|]*\|(.*)\]\]$:\1:'
나는 기본 regexps '에와 |
일치하는 방법을 찾을 수 없습니다 ...
해보십시오 AWK : 그것을 해결. "|"로 분할 그리고 두 번째 필드를 얻습니다. 그처럼 간단합니다. 쉽게 문자열의 분할을 수행 원하는
$ echo "[[target|visible]]" | awk -F'|' '{gsub(/\]/,"",$2);print $2}'
visible
또는 도구와 같은 그 ]
를 제거합니다. 예를 들어 루비 (1.9+)
$ echo "[[target|visible]]" | ruby -e 'puts gets.split("|")[-1].gsub(/\]/,"")'
visible
'AWK를 '이 실행되는 시스템에서는 사용할 수 없습니다. – Hurk