sed は行末で一致する単語を置き換えます。

sed は行末で一致する単語を置き換えます。

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パターンの後に行を入れます(&)。
  • Print 行は\newline の前に来ます。
  • 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]は一致しません。

ただし、複数行がないことを確認できる場合(少なくとも場合によっては)、上記の内容は確実に機能します。タブ文字もありません。

関連情報