AWK -Как заменить строку, начинающуюся с?

Команда:for i in a b c d; do echo $i;awk -v i="$i" '$2 == i{print $1}' filename| perl -pne "s/\n/ /g";echo " "| perl -pne "s/ /\n/g";done| sed '/^$/d'| sed "N;s/\n/ /g"

выход

for i in a b c d; do echo $i;awk -v i="$i" '$2 == i{print $1}' l.txt | perl -pne "s/\n/ /g";echo " "| perl -pne "s/ /\n/g";done| sed '/^$/d'| sed "N;s/\n/ /g"

a 1 2 3 
b 1 2 
c 1 2 3 4 
d 1
1
01.07.2020, 22:13
3 ответа
$ awk '/^TEST=/ { print "TEST=MY LINE"; next; }; { print; }' input

aaaa 
bbb
ccc
TEST=MY LINE
bdd
mmp
kff
fds
2
18.03.2021, 23:23

Сsed:

sed 's/^\(TEST=\).*/\1MY LINE/' file
2
18.03.2021, 23:23

Выполнено 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
0
18.03.2021, 23:23

Теги

Похожие вопросы