次の入力文字列を考えます。
PLOG_NFET_SLVT nf=3 ng=1 nl=20n
出力
PLOG_NFET_LVT nf=3 ng=1 nl=14n
注:最初の単語と最後の単語が置き換えられます。データ間にも違いがあります。だから私は一定のパターンを持つことはできません。次のコマンドを試してみました。
sed -i 's/PLOG.*FET_SLVT.*nl=20n/PLOG.*FET_LVT.*nl=14n/g' file
出力は次のとおりです
PLOG.*FET_LVT.*nl=14n
助けが必要ですか?
答え1
検索パターンでキャプチャグループを使用し、置換パターンに逆参照(\1
または)を追加できます。\2
sed 's/PLOG_\([A-Z]\)FET_SLVT \(.*\) nl=20n/PLOG_\1FET_LVT \2 nl=14n/'
答え2
この試み、
sed -i 's/^PLOG_NFET_SLVT/PLOG_NFET_LVT/g;s/20n$/14n/g' file
- パターンを探すスタートそして
PLOG_NFET_SLVT
に交換PLOG_NFET_LVT
- と検索パターン終わるそして
20n
に交換14n
答え3
この試み:
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