2012-05-10 5 views
0

で正確な文字列を交換し、私はこのようになりますリストがあります。今bashの

server 
server.apple.com 
server.apple.com 
server 
server.apple.com 

を、私は 『サーバ』と言うラインに「.apple.com」を追加したいと思います。あなたが使用することができ

sed -e 's/\bserver\b/server.apple.com/g' 

答えて

2

:私はsedを試してみた

sed 's/^server$/server.apple.com/g' 

^は、ラインの開始を意味し、$は、行の終わりを意味しています。

引数は-eである必要はありません。これは単なる正規表現であるためです。

あなたは(もSERVERSErvErに一致する)serverための大文字小文字を区別しない検索をしたい場合は、しかし、それはsedの様々なバージョンでサポートされていない、I機能を使用することができます:あなたが持っていない場合は

sed 's/^server$/server.apple.com/Ig' 

あなたが使用することができますIサポートsedバージョン:

sed 's/^[Ss][Ee][Rr][Vv][Ee][Rr]$/server.apple.com/g' 
+0

ああ、遅すぎる。 btw '-e'は必要ではありません、そうですか? – tsusanka

+0

@aGrいいえ – Tyilo

+0

ありがとう!あなたがそれを見たときにとても分かります:) –

2
sed 's/^server$/server.apple.com/g' inputfile 

^は、行の先頭を意味し、末尾の$を意味します。したがって、これは追加のテキストを持たない行だけに一致します。

+0

'sentence'はそれを記述するのに最適な単語ではないかもしれません。 – ArjunShankar

+0

あまりにも疲れて.. thx – tsusanka