EGREP正規表現を使用して、URLを含むファイル内のいくつかのパターンを検索しています。各行でのみ最初のインスタンスを見つけたい。たとえば、これは私の正規表現です。
egrep -io '^\<http(s)://home\>+\..+\.gov(\.au)?' input.txt
このインスタンスを出力します。
https://home.xxx.gov/uuu.aspx?url=https://home.xxx.gov
しかし、この特定の例で私が本当に探しているのは次のとおりです。
https://home.xxx.gov
.govの後に何が来るかは気にしないので、トリミングしたいと思います。これどうやってするの?
怠惰な数量詞が必要であり、そのためにはPerlスタイルの正規表現が必要です。
egrep -P -io '^https?://home\..+?\.gov(\.au|\.uk)?' input.txt
egrep
Perl正規表現をサポートしていない場合は、別の方法を見つける必要があります。たとえば、
egrep -io '^https?://home\.[A-Za-z0-9.]+\.gov(\.au|\.uk)?' input.txt
または
egrep -io '^https?://home\.[^/]+\.gov(\.au|\.uk)?' input.txt
正規表現で一致する可能性のある文字の範囲を制限します。@ sshashank124のソリューションも参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加