grep:如何在没有编号行的文件中输出结果?
我试图从文件中的每一行中提取两组字符之间的子字符串: 输入文件中的每一行都是:grep:如何在没有编号行的文件中输出结果?,grep,Grep,我试图从文件中的每一行中提取两组字符之间的子字符串: 输入文件中的每一行都是: https://github.com/myname/repo1 | GitHub - repo description https://github.com/myname/repo2 | GitHub - repo description https://github.com/myname/repo3 | GitHub - repo description .... https://github.com/myname
https://github.com/myname/repo1 | GitHub - repo description
https://github.com/myname/repo2 | GitHub - repo description
https://github.com/myname/repo3 | GitHub - repo description
....
https://github.com/myname/repoN | GitHub - repo description
我提取“”和“|GitHub”之间的子字符串以获得:
myname/repo1
myname/repo2
myname/repo3
...
myname/repoN
我使用GNU grep:
grep -nPo 'github.com\/\K.*?(?= \|)' ~/Desktop/forksonGithub.txt
这将在控制台中显示带有行号的正确列表
1:myname/repo1
2:myname/repo2
3:myname/repo3
...
4:myname/repoN
如果没有lin编号,如何在输出文件中获取此列表?
感谢您的反馈选项
-n
负责行号。您只需删除它:
grep -Po 'github.com\/\K.*?(?= \|)' ~/Desktop/forksonGithub.txt
myname/repo1
myname/repo2
myname/repo3
...
myname/repoN
谢谢。。。明白了,我同时用awk-F:(print$2)删除了它,所以正确的是。grep-Po'github.com\/\K.*(?=\\\\|))~/Desktop/forksonGithub.txt>result.txt-o标志足够了-o标志足够了