行を正確に一致する文字列に置き換える方法

行を正確に一致する文字列に置き換える方法

以下のファイルがあります:dskldfsd.com

domain

domain.com

sub.domain.com

domain.main.com

anythinghere

単語を含む行を削除したいですdomain。 grepを使用すると、このコマンドは私が望む正確な行を探します。

grep -w '^domain$' test.txt

domainところで、行の先頭から最後まで、1つの単語を含むこの行を削除したいと思います。単語がdomain文字列の一部である行を維持したいです。

答え1

sedを使用してください:

sed -i -e '/^domain$/d' test.txt

答え2

どうですか?

grep -v '^domain$' test.txt

答え3

なぜgrep -v '^domain$'なのか私が理解しているところによると、質問によると、単にgrep -v 'domain'です。

答え4

標準ツールを使用すると仮定すると、次のようにできます。

grep -xF -v 'domain' test.txt >newtest.txt

この-xフラグは一致grepを行全体に適用し、-Fパターンをgrep正規表現ではなく固定文字列として扱うようにします。文字列だけでなく-vすべての行が含まれるように、一致の意味を逆に置き換えます。結果はに記録されます。test.txtdomainnewtest.txt

関連情報