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