![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 2つのパターンを削除し、 1つのパターンを削除 | ppat7046 | シェルプログラミングとスクリプティング | 7 | 2009年4月8日 09:19午前 |
| 2つ目のパターンを削除せずに2つのパターンの間の行を削除 | Ilja | シェルプログラミングとスクリプティング | 1 | 2008年11月14日 09:53午前 |
| 2つの異なるパターンの間のすべての行はgrep | gurpreet470 | シェルプログラミングとスクリプティング | 2 | 2008年11月7日 04:45午後 |
| 2つのパターンの最後の発症との間の行を取得する | rvz | シェルプログラミングとスクリプティング | 8 | 2008年8月8日 05:32午後 |
| パターンの間に線を取得する方法は? | racbern | シェルプログラミングとスクリプティング | 11 | 2008年4月23日 07:28午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
パターンとの間の行を削除
こんにちは、私はこのフォーラムでは一日が私の仕事をするために十分なコードを見つけることができませんでしたを捜索しました。唯一のコードは、私を見つけることができるからです:
セッド ' / [ 0-9 ] [ 0-9 ] / 、 / [ 0-9 ] [ 0-9 ] / ( / / p ;エ; ) ' inputfile > outputfile 私はしたいと思います セッド/2つのパターンのAwkの/はgrepは、ファイルと、そのパターンとの間の行を削除してください。 inputfile下記参照してください。これは、長いファイルのごく一部だけです。太字ですべて削除する必要があります。 この場合において、私は最初のパターンを検索したい[ 0 0 2 ]と最後のパターン[ 2433 2433 2 ] 、これらのパターンが、ラインを維持[ ANT_2 ]は、ライン上に[ 2433 2433 2 ]間のすべての行を削除。同様に、私は最初のパターンを検索したい[ 0 0 4 ]と最後のパターン[ 1 1 2 ] 、これらのパターンは、行を[ ANT_6 ]上記の行を維持する[ 1 2月1日間のすべての行を削除] 。これらのパターンの間の行数が変化することができます。唯一のことは、私は、定数を確認することができます[ 0 0 ] 。 任意の提案を大幅に助けをいただければ幸いです。 inputfile ---- ANT_1 0 0 2 1月14日10時11分44秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ 層へのゲート面積比> 500 ANT_2 2433 2433 2 1月14日10時13分46秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ mt1にゲート面積比> 40 p 1 44 -2109300 -10645700 -2095600 -10645700 -2095600 -10649700 -2088500 -10649700 -2088500 -10655700 -2071900 -10655700 ANT_3 0 0 2 1月14日午前10時13分59秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ mt2差分ゲート入力。 ANT_4 0 0 2 1月14日10時14分01秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ 金差分ゲート入力。 ANT_5 0 0 4 1月14日10時14分01秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ 金差分ゲート入力。 ANT_6 1 1 2 1月14日10時14分01秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ 金差分ゲート入力。 NET_AREA_RATIO_RDBS 0 0 3 1月14日10時14分01秒2009 ANT2.OUT ANT3.OUT ANT4.OUT 希望outputfile ---------------- ANT_2 2433 2433 2 1月14日10時13分46秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ mt1にゲート面積比> 40 p 1 44 -2109300 -10645700 -2095600 -10645700 -2095600 -10649700 -2088500 -10649700 -2088500 -10655700 -2071900 -10655700 ANT_6 1 1 2 1月14日10時14分01秒2009 ルールファイルのパス名: /ホーム/ラ/ _drc_ 金差分ゲート入力。 |
|
||||
|
ため、私はこのフォーラムのリストでそれを見つけることができなかったGhostdog 、イム分からないがほかのUnix / Linuxのフォーラムです。
私はこのフォーラムからのコードを取得し、私が何をしているに適用することができた。それは正確ではないが近いものだ。 コード ----- コード:
#!/bin/bash
function drcext
{
# Extract one line above and two lines below a pattern
awk '/[1-9] [1-9] /{ before-=1;after=2; next }
after { after--;next }
{ store[++before]=$0}
END {
for(i=1;i<=before;i++) {
print store[i]
}
}' b > c
diff b c > d
sed -i 's/[0-9]*,[0-9]*[a-z]*[0-9]*/----------------------------------------------------------------/g' d
sed -i 's/< //g' d
# Add a variable content to the beginning of the file
rulepath=`grep Rule d`
sed -i '/Rule/d' d
sed "1i $rulepath" < d > e
}
drcext
これは私の入力ファイルです: inputfile b --------- コード:
die1 1000 WARN_1 0 0 2 May 4 16:20:21 2009 Rule File Pathname: /coms Rule File Pathname: /home/la/_tij4_drc_ TEOS_CH minimum spacing to VIA_1 is 10.0u, must not overlap 23_K 1 1 2 May 4 16:24:00 2009 Rule File Pathname: /home/la/_tij4_drc_ TEOS_CH must be enclosed by Metal_3 10um min p 1 4 CN tmplt c 1 0 0 1 0 0 -1512633 -8706882 -1507100 -8715212 -1507100 -8668836 -1512633 -8677166 Rule File Pathname: /home/la/_tij4_drc_ SU8_chm to Bond Pad min space is 10 um 45_D2 20 20 2 May 4 16:30:03 2009 Rule File Pathname: /home/la/_tij4_drc_ SU8_chm to Bond Pad at the end of a row min space is 100 um e 1 2 CN die1 c 1 0 0 1 0 0 -1366000 -9000000 -1366000 -8991408 -1461658 -9029146 -1457396 -9031988 e 2 2 -1366000 -9000000 -1366000 -8981773 -1457396 -9031988 -1450898 -9034615 e 3 2 -1366000 -8804227 -1366000 -8800000 Rule File Pathname: /home/la/_tij4_drc_ Primer must be enclosed by SU8_prm AT_1 2 2 2 May 4 16:30:20 2009 Rule File Pathname: /home/la/_tij4_drc_ target must be covered by (drawn) dso p 1 36 CN target_bondalign c 1 0 0 1 -1676600 7170000 -24000 0 -23635 -4168 Rule File Pathname: /home/la/_tij4_drc_ SU8_prm must overlap dso over gld_tgt by 3um min AT_5 2 2 2 May 4 16:30:20 2009 Rule File Pathname: /home/la/_tij4_drc_ SU8_prm/chm/nzl not allowed over gld_tgt p 1 36 CN target_bondalign c 1 0 0 1 -1676600 7170000 -24000 0 -23635 -4168 -22553 -8208 -20785 -12000 -18385 -15427 Rule File Pathname: /home/la/_tij4_drc_ contact not allowed in stitch zone su8_14_26A 55 55 2 May 4 16:30:30 2009 Rule File Pathname: /home/la/_tij4_drc_ NOZZLE minimum width is 10um (for 14um thick material) p 1 114 CN resistor_array c 1 0 0 1 0 0 -1052100 -7525307 -1052067 -7525796 -1052066 -7525803 -1051974 -7526268 これは私の出力ファイルです: outputfileメール ----------- コード:
Rule File Pathname: /home/la/_tij4_drc_ ---------------------------------------------------------------- 23_K 1 1 2 May 4 16:24:00 2009 TEOS_CH must be enclosed by Metal_3 10um min ---------------------------------------------------------------- AT_1 2 2 2 May 4 16:30:20 2009 target must be covered by (drawn) dso ---------------------------------------------------------------- AT_5 2 2 2 May 4 16:30:20 2009 SU8_prm/chm/nzl not allowed over gld_tgt ---------------------------------------------------------------- su8_14_26A 55 55 2 May 4 16:30:30 2009 NOZZLE minimum width is 10um (for 14um thick material) このコードは1つの問題があると私は理解dontは、パターン[ 1-9 ] [ 1-9 ]ので、解凍してはならないラインを使用しています: 55 55 2 5月4日午前16時30分30秒2009 しかし、それは私が望んでいる。また、行を思う: 20 2月20日5月4日午後04時30分03秒2009 しかし、それが抽出されませんでした。どうすればよいので、任意の文字列を検索します。すなわち、パターン/ [ 1-9 ] [ 1-9 ] /変更する55 55 2 20 20 2 ?私は別のパターン/ [ 1-9 ] * [ 1-9 ] * /またはその線に沿って何かを、試みたが、作業ではない。 申し訳ありませんが、すべての要求に対しては、長期にわたる大幅にアドバイスいただければ幸いです。これは私のコードです: 編集vgersh99で最終; 2009年5月28日に 03:01午後..理由:コードのタグを追加 |
| ビット受賞/ shamushamuにこのポストに請求 | |||
| 日付 | ユーザ | コメント | 量 |
| 2009年5月28日 | vgersh99 | Ñ / | 0 |
![]() |
| ブックマーク |
| スレッドツール | このスレッドを検索 |
| 表示モード | このスレッド |
|
|