AWK - 如何替换以以下开头的行?

AWK - 如何替换以以下开头的行?

我想使用 awk (因为我不能使用 sed 或 grep)来替换以测试= 经过“测试=我的线路”

举个例子

我的文件:

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

相关内容