Grep-从文件的行中删除字符

Grep-从文件的行中删除字符,grep,Grep,我有一个包含以下行的文件: 56228//Ube2j1 68192//Leprotl1 66074//Tmem167 66074//Tmem167 66074//Tmem167 56445//Dnaja2 72061//2010111I01Rik 返回以下内容的最佳命令是什么?基本上,我只想返回/后面的字符 Ube2j1 Leprotl1 Tmem167 Tmem167 Tmem167 Dnaja2 2010111I01Rik 您可以在grep中使用lookbehinds(其中包括-p参数)

我有一个包含以下行的文件:

56228//Ube2j1
68192//Leprotl1
66074//Tmem167
66074//Tmem167
66074//Tmem167
56445//Dnaja2
72061//2010111I01Rik
返回以下内容的最佳命令是什么?基本上,我只想返回
/
后面的字符

Ube2j1
Leprotl1
Tmem167
Tmem167
Tmem167
Dnaja2
2010111I01Rik

您可以在grep中使用lookbehinds(其中包括
-p
参数)打印紧跟在
/
之后的所有字符

$ grep -oP '(?<=\/\/).*' file
Ube2j1
Leprotl1
Tmem167
Tmem167
Tmem167
Dnaja2
2010111I01Rik
仅当要打印中间的空行时,才使用下面的sed命令

$ sed 's/^.*\/\///g' file
Ube2j1

Leprotl1

Tmem167

Tmem167

Tmem167

Dnaja2

2010111I01Rik

只需使用
cut

cut -f3 -d/ filename
输出:

Ube2j1

Leprotl1

Tmem167

Tmem167

Tmem167

Dnaja2

2010111I01Rik

下面的grep命令将提取两个斜杠后面的任何文本。需要注意的是,它将只从末尾提取字符串的一部分,而不是从开头提取(例如,使用“123//456//789”,它将返回“789”,而不是“456//789”)


awk
将完成以下工作:

awk -F"//" '{print $2}' file
Ube2j1
Leprotl1
Tmem167
Tmem167
Tmem167
Dnaja2
2010111I01Rik
$ grep -o "[^\/][^\/.]*$" file
Ube2j1
Leprotl1
Tmem167
Tmem167
Tmem167
Dnaja2
2010111I01Rik
awk -F"//" '{print $2}' file
Ube2j1
Leprotl1
Tmem167
Tmem167
Tmem167
Dnaja2
2010111I01Rik