私はこれに慣れておらず、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
sed
POSIXデフォルト正規表現(BRE)がデフォルトで使用されます。 \s
BREと同等のPCRE(Perl互換正規表現)です[[:blank:]]
(空白とタブまたは[[:space:]]
より大きな空白文字セットと一致すると思います)。 BRE+
と同等のPOSIX拡張正規表現(ERE)修飾子です\{1,\}
。
だから試してみてください
sed 's/\.[[:blank:]].*//'
代わりに。[[:blank:]]
タブ文字を一致させる必要がない場合は、空白文字に置き換えることができます。
sed 's/\. .*//'
g
一致するものは1つだけなので、置換にフラグを使用する必要はありません。また、他の文字があるか全く気にしないので、使用したものを代わりに.+
置き換える.*
ことができます(すべて削除するだけです)。.\{1,\}
関連: