2016-10-20 4 views
1

私は文字の2グループ間のファイルの各ラインからサブ文字列を抽出しようとしています: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/repoN | GitHub - repo description 

私は「間のサブ文字列を抽出しますhttps://github.com/ "と" | GitHubのは、」取得する:

myname/repo1 
myname/repo2 
myname/repo3 
... 
myname/repoN 

そして私は、GNU grepのを使用しています。 :

grep -nPo 'github.com\/\K.*?(?= \|)' ~/Desktop/forksonGithub.txt 

これは私がLIN番号のない出力ファイルにこのリストを取得することができますどのように行番号

1:myname/repo1 
2:myname/repo2 
3:myname/repo3 
... 
4:myname/repoN 

でコンソールで正しいリストが表示され? フィードバックありがとう

+0

-oフラグはそれを –

答えて

2

オプション-nは行番号を担当します。あなたはそれを削除する必要があります。

grep -Po 'github.com\/\K.*?(?= \|)' ~/Desktop/forksonGithub.txt 
myname/repo1 
myname/repo2 
myname/repo3 
... 
myname/repoN 
+0

おかげで多くのことを行うのに十分である...それを得た、私、私はawkの-Fを使用し、その間:それを削除する「($ 2印刷します)」、正しいものがあります。 grep -Po 'github.com \/\ K。*?(?= \ |)'〜/ Desktop/forksonGithub.txt> result.txt – erwin

+0

-oフラグで十分です –

関連する問題