2016-10-17 20 views
1

osx/bashのシェルスクリプトでsedコマンドを使用しようとしています。私は、MyFileのコンテンツがxyzabcdefghijkあるsed -i -e 's/abc/123/g' MyFileSedコマンド:文字列を検索し、1文字を文字列の後に置き換えます。

以下

のようなコマンドの最も単純な形式を使用してMyFileの一部のコンテンツを置き換えることがうまくできています。上記のコマンドはabc & 123とを交換するために素晴らしい作品xyz123defghijk

として出力します。しかし、どのように私はabcとともに、同様abc2文字を置き換えるためにsedコマンドを変更します。明確な言葉で、abcMyFile &で検索したい場合は、の後ろに12345を置き換えます。 MyFileが含まれている場合

ので、abcdefghijkは、出力はxyz12345fghijk

任意の提案をしてください含まれている必要がありますか? abcabcと2つの文字を変更するには

答えて

0

:正規表現で

$ sed -e 's/abc../12345/g' MyFile 
xyz12345fghijk 

.は任意の1文字に一致します。したがって、..は2文字に一致し、abc..abcと一致し、いずれの2文字もabcに一致します。

sed -i.bak -e 's/abc../12345/g' MyFile 
+0

私は「123」で「ABC」のような2つの文字の間に交換したい場合は、 'sed'オプションです:

は、インプレースファイルに変更を加えます。あなたはこの小さな質問に答える気になります.. –

+0

2文字間の部分は私には分かりません。あなたはそれが意味するものを明確にしますか?たぶん、サンプルの入力と出力を追加してください。 – John1024

+0

サンプル入力が 'xyz" 123 "45fghijk'と言うことができます。出力がxyz "96701" 45fghijkである必要があります。だから、 'xyz'の後に二重引用符が2つあります。私はちょうど 'abc'の直後に出現する2つのダブルクオートの間の文字列を' 96701'のように置き換えたいと思っています –

関連する問題