nfin
特定の一致パターンの後、つまり行末までのすべての文字を削除しようとしています。
サンプルテキスト
xxsac00mi126 vddai:f1042 tkeept_iph xsac00.f1040 vdda lvtpfet m=1 nf=1 nfin=2 pdej=1.6e-07 asej=3.2e-16 lrsd=4e-08 pre_layout_local=0
注文する
sed -i "s/nfin\=[0-9].*//g" sample_text
希望の出力
xxsac00mi126 vddai:f1042 tkeept_iph xsac00.f1040 vdda lvtpfet m=1 nf=1 nfin=2
答え1
この試みsed
:
sed -E 's/ pdej.*$//'
例:
sed -E 's/ pdej.*$//' file.txt
xxsac00mi126 vddai:f1042 tkeept_iph xsac00.f1040 vdda lvtpfet m=1 nf=1 nfin=2
これには以下がfile.txt
含まれます。
cat file.txt
xxsac00mi126 vddai:f1042 tkeept_iph xsac00.f1040 vdda lvtpfet m=1 nf=1 nfin=2 pdej=1.6e-07 asej=3.2e-16 lrsd=4e-08 pre_layout_local=0
または:nfin
一種のアンカーとして使用するには、以下を使用します。
sed -E 's/(.*nfin=[0-9]).*/\1/' file.txt
xxsac00mi126 vddai:f1042 tkeept_iph xsac00.f1040 vdda lvtpfet m=1 nf=1 nfin=2
答え2
sed -i "/nfin=[0-9]/{s//&\n/;P;d;}" sample_text
nfin=[0-9]
以下を使用して、For line(s)の後に残った行を削除しますnfin=[0-9]
。
\n
パターンの後に行を入れます(&
)。P
rint 行は\n
ewline の前に来ます。d
行の削除(印刷されなくなりました)
答え3
sed -ne 's/[ ]nfin=[^ ]*/&\n/;P' < your_spice_netlist
ただし、spiceネットリストにはインスタンス(「x」)または行の境界を超える任意の要素がある可能性があることに注意してください。この場合、nfinパラメータは+ nfin = 23と同じ行にある可能性があるため、上記のsedコードが機能しない可能性があります。また、「nfin」がパラメータ化されているように見えることもあります(たとえば、nfin = 'width * 0.5 + 1. / nfac * len')。したがって、nfin = [0-9]は一致しません。
ただし、複数行がないことを確認できる場合(少なくとも場合によっては)、上記の内容は確実に機能します。タブ文字もありません。