2

私はURLのリストを持っており、ほとんどの場合、単純な検索と置換を行いたいのですが、場合によってはsedの使用を除外したいと思います。

以下のリストを考えると:

http://www.dol.gov 
http://www.science.gov 
http://www.whitehouse.gov 
http://test.sandbox.local 
http://www.travel.state.gov 
http://www.lib.berkeley.edu
http://dev.sandbox.local

URLに「サンドボックス」が含まれていないすべてのURLを次のように変換したいと思います。

href="/fetch?domain=<url>"

私がこれまでsedで持っているのは、次のとおりです。

sed -r 's|http://(\S*)|href="/fetch\?domain=\1"|g'

これにより、すべてのURLが期待どおりに再フォーマットされます。

「サンドボックス」が含まれている行を除外するために必要なものを変更するにはどうすればよいですか?

よろしくお願いします!

4

2 に答える 2

2

If by exclude, you mean "do not do the replacement", then:

sed -r '/sandbox/!s|http://(\S*)|href="/fetch\?domain=\1"|g'

If you mean 'omit completely from the output':

sed -r -e '/sandbox/d' -e 's|http://(\S*)|href="/fetch\?domain=\1"|g'
于 2012-10-09T16:39:00.123 に答える
1
sed -r 's|http://(\S*)|href="/fetch\?domain=\1"|g' | grep -v sandbox
于 2012-10-09T16:39:10.650 に答える