「.com」文字列で終わるすべての行を除くすべての行を削除します。

「.com」文字列で終わるすべての行を除くすべての行を削除します。

スクリプトを作成しており、現在の入力は次のとおりです。

devdb.eu-central-1.rds.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
2.5
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com

どのように削除できますか2.5?この数はタイムアウトなので、開発者が調整できるので、任意の値にすることができます。ありがとうございます。

答え1

grep を使用して不要な行を削除できます。

grep -v '^[0-9][0-9]*\(\.[0-9][0-9]*\)\?$'

拡張正規表現を使用した短い表現:

grep -vE '^[0-9]+(\.[0-9]+)?$'

0in がオプションの場合、たとえば、0.5次のようになります。

grep -vE '^([0-9]+(\.[0-9]+)?|^\.[0-9]+)$'

答え2

私はあなたのタイトルを読んだ。 」文字列で終わるすべての行を除くすべてを削除.com「使い方は簡単です。grep

条件をひっくり返して「」を取得します。文字列で終わるすべての行を保持.com

grep '\.com$' file

このgrepコマンドは正規表現と一致し、.REの特殊文字(すべての単一文字と一致)なので、エスケープする必要があります。記号$は次のとおりです。行末

答え3

あなたはそれを使用することができますsed

$ sed '/^[0-9]*\.*[0-9]*$/d' file
devdb.eu-central-1.rds.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com
dev-redis.cnwoho.ng.0001.euc1.cache.amazonaws.com

答え4

別の解決策は以下を使用しますawk

awk '/\.com$/' file

これにより、で終わる行だけが印刷されます.com

関連情報