AWK - 次に始まる行を置き換える方法は?

AWK - 次に始まる行を置き換える方法は?

sedやgrepが使えないので、awkを使いたいです。テスト= 渡す「テスト=マイライン」

例えば

私のファイル:

aaaa 
bbb
ccc
TEST=ABC DDE FFE GGG
bdd
mmp
kff
fds

私が欲しいもの:

aaaa 
bbb
ccc
TEST=MY LINE
bdd
mmp
kff
fds

この結果を得るにはどうすればよいですか?正確な行を知ればどのようにすべきか分かりましたが、始めの部分を置き換える方法がわかりませんね。

助けてくれてありがとう :)

答え1

そしてsed

sed 's/^\(TEST=\).*/\1MY LINE/' file

答え2

$ awk '/^TEST=/ { print "TEST=MY LINE"; next; }; { print; }' input

aaaa 
bbb
ccc
TEST=MY LINE
bdd
mmp
kff
fds

答え3

3つの方法で完了

コマンド1:

awk '/^TEST=/{gsub(".*","TEST=MY LINE",$0)}1' filename

コマンド2:

sed '/^TEST=/s/.*/TEST=MY LINE/g' filename

コマンド3

#!/usr/bin/python
import re
k=re.compile(r'^TEST=')
y=open('p.txt','r')
for i in y:
    if re.search(k,i):
        o=re.sub("k.*","kMY LINE",i)
        print o.strip()
    else:
        print i.strip()

出力

aaaa
bbb
ccc
TEST=ABC DDE FFE GGG
bdd
mmp
kff
fds

関連情報