str1="https://111.111.111.111:2222/cpsess8993738132/scripts4/listaccts/"
str2="https://111.111.111.111:2222/cpsess8993738132/"
str3="https://111.111.111.111:2222/cpsess8993738132/cgi/server/xyz.cgi|Server Security & Firewall|111.22.33.31.|0|1|0||0|2221331130315786|fzerstxBjUiZ"
https://IP:port/firstpath/
/of/the/paths/and_some_thing_else의 나머지 부분 만 추출하려면 어떻게 해야 합니까?
가장 많이 추출하고 싶을 뿐이에요https://IP:포트/첫 번째 경로/
쉘 스크립트에서 이 작업을 어떻게 수행할 수 있습니까?
답변1
> str1="https://111.111.111.111:2222/cpsess8993738132/scripts4/listaccts/"
> rest="${str1#*//?*/}"
> str="${str1%"$rest"}"
> echo "$str"
https://111.111.111.111:2222/
답변2
저는 어젯밤부터 노력해왔고 StackExchange에 게시한 지 몇 분 만에 해결책을 찾았습니다.
string="https://111.22.33.44:5557/xyzsess81122334442/scripts4/listaccts/xfercpanel/some" 도와주셔서 감사합니다...
echo $string | sed 's/\//\/\n/4'
> echo $string | sed 's/\//\/\n/4'
> s/ -> replace command
> \/ => find all /
> replace with \/\n -> \and newline
> /4 --> 4th occurance