sedでAWORDまたはBWORDをCWORDに置き換えます。

sedでAWORDまたはBWORDをCWORDに置き換えます。

したがって、次の種類のランダムWebサイトのリストがあります。

   rapido21655bonk.a.sweetpotato.net
   rapido26230bonk.a.sourpotato.net
   rapido29926bonk.b.sourpotato.net
   rapido29926bonk.b.sweetpotato.net
   rapido30179bonk.a.sweetpotato.net
   rapido30648bonk.b.sourpotato.net
   rapido30761bonk.c.sweetpotato.net

数字だけを保持し、他のすべてを削除するにはsed文字列が必要です。私がしたことは最初の部分を削除することです。 2番目の部分では、sedを2回使用して削除できますが、いくつかのロジックを使用して1つのsedで削除できるsed s/rapido//かどうかを知りたいと思います。or私はsedを使用してa or b or cusingを一致させることができることを知っていますが、[abc]単語全体に一致するものと似ていることを望みます。だから私が次にしたことは次のとおりです。

sed s/rapido//|sed s/bonk.[abc].sweetpotato.net//その後、Sourpotato.netを使用して別のものを追加しましたが、次のことはできません。

sed s/rapido//|sed s/bonk.[abc].(sweet|sour)potato.net// これはうまくいきません。それは私にこれを与えます:( -bash: syntax error near unexpected token''

rapido22452boonkers.red時には私がそこに保管したいものと同じものを得ることができるので、番号を変更するだけでは機能しません。 2つの選択肢を削除したいです。sweetpotato.netOR。sourpotato.net

[111@111 ~]$ sed s/rapido// sedster|sed 's/bonk.[abc].(sweetpotato|sourpotato).net//'
   21655bonk.a.sweetpotato.net
   26230bonk.a.sourpotato.net
   29926bonk.b.sourpotato.net
   29926bonk.b.sweetpotato.net
   30179bonk.a.sweetpotato.net
   30648bonk.b.sourpotato.net
   30761bonk.c.sweetpotato.net

ベストアンサー1

数値のみを抽出するには、GNUを使用して次のことを実行できますgrep

$ grep -oP '\d+' file
21655
26230
29926
29926
30179
30648
30761

または移植のためにPerlを使用してください。

$ perl -pe 's/[^\d\n]+//g' file
21655
26230
29926
29926
30179
30648
30761

またはsed:

$ sed -nE 's/[^0-9]+//gp' file
21655
26230
29926
29926
30179
30648
30761

より具体的な入力データが必要な場合は、次のことを試すことができます。

$ sed -nE 's/.*rapido([0-9]+)bonk\..\.(sweet|sour)potato.net.*/\1/p' file
21655
26230
29926
29926
30179
30648
30761

おすすめ記事