0
ファイル内のユーザー名に文字列を置き換えるためにsedを使用しなければならないシンプルな(少なくとも私はそれはだと思いました)割り当てがあります。ユーザー名と3 '')UNIX Sedと逆文字列検索
-replace:
1)
2)
3)
3) www
www 3)
3)
7)
割り当ては3つの部分があります。このような、それコンテンツルックスがいることを言うことができます。このコマンドは正しく動作します。
sed -e "s/3)/$USER/" file
-replace '3)'は、 'www'文字列の行にのみあなたのIDで置き換えてください。 「WWW」なし行だけで、私は3を交換する必要が割り当ての最後の部分で
sed -e "/www/ s/3)/$USER/" file
)私のIDを持つ:マイナーな改良では最初の部分の形式のコマンドも、仕事を取得します。 sedを使って文字列を検索する簡単な方法はありますか?これまで私は '[]'の中の3文字のセットを否定する考えを思いついたが、残念ながらそれは実際には機能しません。
sed -e "/[^/(www/)]/ s/3)/$USER/" file
引用符を修正した後、あなたのソリューションは素晴らしいsed -e "/ www /!s/3)/ $ USER /" fileありがとうございます! –
私はちょうど純粋な好奇心から尋ねています:残りの部分が一重引用符で囲まれていると、シェルが$ USER部分だけを変数として解釈させる方法はありますか? '/ www /!s/3'を使用しようとすると/ "$ USER /" 'シェルが$ USERを通常の文字列として解釈します。 –
コマンドラインで!二重引用符で囲まれたものはまだ特別です。引用符はbashに入れ子になっていませんが、 '/ www /!s/3 ')' /" $ USER "/'は引用符で囲む必要があります。 – choroba