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

관련 정보