![AWK - 如何替换以以下开头的行?](https://linux22.com/image/176278/AWK%20-%20%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E4%BB%A5%E4%BB%A5%E4%B8%8B%E5%BC%80%E5%A4%B4%E7%9A%84%E8%A1%8C%EF%BC%9F.png)
我想使用 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