比赛后Grep打印

use*_*294 4 bash grep

我使用grep它输出这样的列表

/player/ABc12
/player/ABC321
/player/EGF987
/player/egf751
Run Code Online (Sandbox Code Playgroud)

不过,我想只给玩家这样的名称ABC321,EFG987等...

Gil*_*not 12

开始使用grep:

$ grep -oP "/player/\K.*" FILE
ABc12
ABC321
EGF987
egf751
Run Code Online (Sandbox Code Playgroud)

或更短:

$ grep -oP "[^/]/\K.*" FILE
ABc12
ABC321
EGF987
egf751
Run Code Online (Sandbox Code Playgroud)

或者没有-P(pcre)选项:

$ grep -o '[^/]\+$' FILE
ABc12
ABC321
EGF987
egf751
Run Code Online (Sandbox Code Playgroud)

或者纯粹的bash:

$ IFS=/ oIFS=$IFS
$ while read a b c; do echo $c; done < FILE
ABc12
ABC321
EGF987
egf751
$ IFS=$oIFS
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 5

停止使用 grep。

$ awk -F/ '$2 == "player" { print $3 }' input.txt
ABc12
ABC321
EGF987
egf751
Run Code Online (Sandbox Code Playgroud)


Tim*_*ote 5

@sputnick有正确的想法grep,这样的东西实际上是我的首选解决方案.我个人立刻想到了一个积极的看法:

grep -oP '(?<=/player/)\w+' file
Run Code Online (Sandbox Code Playgroud)

\K作品也完美无缺.

另一种(稍短)解决方案是sed:

sed 's:.*/::' file
Run Code Online (Sandbox Code Playgroud)