sed:FQDNの後のドットの後のすべてのエントリを削除します。

sed:FQDNの後のドットの後のすべてのエントリを削除します。

私はこれに慣れておらず、sedそれを動作させるのにいくつかの問題があります。

私が望むのはこれです:

abc.ztx.com. A 132.123.12.44 ---> abc.ztx.com

次のパターンを使用しましたが、うまくいかないようです。

echo "abc.ztx.com. A 132.123.12.44" | sed 's/\.\s.+//g'

regex101.comを使用して正規表現を確認しましたが、パターンはその\.\s.+部分と. A 132.123.12.44完全に一致しました。なぜ動作しないのですsedか?

助けてくれてありがとう。ありがとうございます。

ベストアンサー1

sedPOSIXデフォルト正規表現(BRE)がデフォルトで使用されます。 \sBREと同等のPCRE(Perl互換正規表現)です[[:blank:]](空白とタブまたは[[:space:]]より大きな空白文字セットと一致すると思います)。 BRE+と同等のPOSIX拡張正規表現(ERE)修飾子です\{1,\}

だから試してみてください

sed 's/\.[[:blank:]].*//'

代わりに。[[:blank:]]タブ文字を一致させる必要がない場合は、空白文字に置き換えることができます。

sed 's/\. .*//'

g一致するものは1つだけなので、置換にフラグを使用する必要はありません。また、他の文字があるか全く気にしないので、使用したものを代わりに.+置き換える.*ことができます(すべて削除するだけです)。.\{1,\}

関連:

おすすめ記事