1
sed -i -e "/^*google.com*/d" activedomains.txt

私がやろうとしているのは、* google.com *を含む行を削除することです。これは、前面と背面の両方でワイルドカードである必要があり、理解できないようです:/

4

3 に答える 3

3

sedグロブではなく正規表現を使用します(ただし、何かが行われる可能性があります)。ただし、変更は非常に簡単です。

sed -i '/google\.com/d' activedomains.txt

これにより、に一致 するすべての行が削除されますgoogle.com。あなたも使うことができます

sed -i -e '/^.*google.com.*/d' activedomains.txt

...これはあなたがやっていることと一致していて、文字通り「文字列の始まり、0個以上の任意の文字、その後に続く「google(任意の文字の1つ)com」、それに続く0個以上の任意の文字を意味します。」もちろん、「ゼロ以上」に囲まれているので、直接合わせるのもいいですね。

于 2013-02-28T23:27:15.747 に答える
1

これですか?

sed -i -e "/google\.com/d" activedomains.txt
于 2013-02-28T23:27:08.230 に答える
0

これはうまくいくはずです:

sed -i -e "/google.com/d" activedomains.txt

ここにワイルドカードは必要ありません:それはgrep

于 2013-02-28T23:27:36.550 に答える