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