Você pode usar um grupo de captura no padrão de pesquisa e adicionar a referência anterior ( ou
) ao padrão de substituição:
sed 's/PLOG_\([A-Z]\)FET_SLVT \(.*\) nl=20n/PLOG_FET_LVT nl=14n/'
Considere a seguinte string de entrada.
PLOG_NFET_SLVT nf=3 ng=1 nl=20n
Saída
PLOG_NFET_LVT nf=3 ng=1 nl=14n
Nota: a primeira e a última palavra são substituídas. Também entre os dados varia. Então eu não posso ter um padrão constante. Eu tentei usar o comando abaixo.
sed -i 's/PLOG.*FET_SLVT.*nl=20n/PLOG.*FET_LVT.*nl=14n/g' file
e a saída é:
PLOG.*FET_LVT.*nl=14n
Alguma ajuda?
Tente isso,
sed -i 's/^PLOG_NFET_SLVT/PLOG_NFET_LVT/g;s/20n$/14n/g' file
PLOG_NFET_SLVT
e substitua por PLOG_NFET_LVT
20n
e substitua por 14n
Tente isto:
sed 's/SLVT/LVT/;s/20n/14n/'
$ echo "PLOG_NFET_SLVT nf=3 ng=1 nl=20n" | sed 's/SLVT/LVT/;s/20n/14n/'
PLOG_NFET_LVT nf=3 ng=1 nl=14n
Tags sed shell-script