The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   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午前

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2009年5月26日
shamushamu shamushamu is offline
登録ユーザー
  
 

参加日: 2008年09月
投稿: 21
パターンとの間の行を削除

こんにちは、私はこのフォーラムでは一日が私の仕事をするために十分なコードを見つけることができませんでしたを捜索しました。唯一のコードは、私を見つけることができるからです:

セッド ' / [ 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_
金差分ゲート入力。
  #2固定リンク)  
Old 2009年5月26日
ghostdog74 ghostdog74 is offline Forum Advisor  
登録ユーザー
  
 

参加日: 2006年9月
投稿数: 2,530
"ほかのUNIXおよびLinuxフォーラムトピックスあなたに役立つこと"を見て[検索]ボックスが存在する場合にも同様のソリューションです参照してください。
  #3固定リンク)  
Old 2009年5月28日
shamushamu shamushamu is offline
登録ユーザー
  
 

参加日: 2008年09月
投稿: 21
ため、私はこのフォーラムのリストでそれを見つけることができなかった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)
なぜAwkのコマンドでは、検索パターン[ 1-9 ] [ 1-9 ]が発見されている行を削除することがよく分かりません。このコードを投稿するにはもともと、上記の1行とは、パターン[ 1-9 ] [ 1-9 ]の下の2行を抽出するためのものです。このコードは逆です。削除するのではなく、だから私は、削除された行を取得するには、差分を使用しているのを解凍します。どのようにしてください私の代わりに削除を抽出する再にご連絡ください。

このコードは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
  #4固定リンク)  
Old 2009年5月28日
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
モデレータ
  
 

参加日: 2005年2月
場所:ボストン、修士
投稿数:5122
すべてのユーザーに対しては、形式に自分の投稿を正確に時間がかかるのフォーラム高品質を維持するためにしてください。

まず、使用を コードタグ ときに簡単にコードを読むことができるので、他のサンプルを任意のコードやデータを投稿してください。を簡単にコードを強調し、これを行うことができますをクリックすると、編集メニューの# 。 (タグのコードを入力することもできます[コード]と[ /コード]を手で。 )

第二に、自分の投稿に異なる色やフォントやフォントサイズを追加しないようにします。色の選択を使用する時に役に立つことができる、単一の単語または語句を強調するが、色を使用する場合、一般的には、フォーラムを読んで、赤などの明るい色が特に困難になります。

第3に、注意する際にカット&ペースト、どんな変な文字を編集して作業しているすべてのリンクのプロパティです。

ありがとうございました。

UNIXおよびLinuxフォーラム
  #5固定リンク)  
Old 2009年5月28日
shamushamu shamushamu is offline
登録ユーザー
  
 

参加日: 2008年09月
投稿: 21
つまり、 vgersh99申し訳ございません。私はLinuxとこのフォーラムに新しいです。

私だけが、私のコードを修正してください。私はパターンを変更された:

コード:
awk '/^[1-9]/{ before-=1;after=2; next }

しかし、私はまだ非常にこの場合、誰よりも優れたソリューションをしている見て興味がある。私はこの数行を使用して行うことができると信じています。
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 07:42午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0