1

次のようなファイルを変更しようとしています。

Hello
My name is [Bob]
My age is 34

次のようになります。

Hello
My name is [Bob]SomeText[Bob]SomeText
My age is 34

ただし、簡単にするために、探している「文字列」は常にで始まることを知っています [Bo

さらに情報が必要な場合は、ただ言ってください:)

4

3 に答える 3

0
perl -pe 'm/(\[Bo.*?\])/g;$a=$1;s/(.*\[Bo.*?\])/$1sometext${a}sometext/g;' your_file

上記のソリューションは、[Bo.*] が常に行末にある場合に機能します。テスト済み:

> cat temp
Hello
My name is [Bob]
My age is 34
> perl -pe 'm/(\[Bo.*?\])/g;$a=$1;s/(.*\[Bo.*?\])/$1sometext${a}sometext/g;' temp
Hello
My name is [Bob]sometext[Bob]sometext
My age is 34
> 
于 2013-05-09T11:42:32.897 に答える
0

bash本当にのみを使用する必要がない場合は、次を使用できますsed

 sed 's/\[Bo.*/&SomeText&SomeText/g' filename

出力:

Hello
My name is [Bob]SomeText[Bob]SomeText
My age is 34
于 2013-05-09T11:19:52.400 に答える
0

を使用しsedます。[Bo最初のフォームまでのすべてを一致させ、]それを置き換えます。

sed 's/\(\[Bo[^\]]*\]\)/\1SomeText\1/'
于 2013-05-09T11:21:25.440 に答える