亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3413 | 回復(fù): 7
打印 上一主題 下一主題

awk問題,求解 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-07-22 11:36 |只看該作者 |倒序瀏覽
本帖最后由 beacon1024 于 2011-07-22 11:40 編輯

一段文本,想截取其中的一段,我用兩個awk結(jié)合實現(xiàn)了
希望截取“STARTUP NOMOUNT”和下面第一個“;”之間(也包括這兩個本身)的內(nèi)容并且匹配其中有NORESETLOGS的
我的方法是:
awk '/STARTUP NO/,/;/' ora.log  | gawk -vRS=';' '/NORESET/{print $0 ";"}'
我想請教各位,怎么在一句awk中實現(xiàn)這個功能?我碰到的問題是,RS變量在同一句中怎么分別定義,而且段落截取之后賦值給變量后再匹配會出很多奇怪的問題。。。

輸出結(jié)果是
  1. awk '/STARTUP NO/,/;/' ora.log  | gawk -vRS=';' '/NORESET/{print $0 ";"}'
  2. STARTUP NOMOUNT
  3. CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS  ARCHIVELOG
  4.     MAXLOGFILES 16
  5.     MAXLOGMEMBERS 3
  6.     MAXDATAFILES 100
  7.     MAXINSTANCES 8
  8.     MAXLOGHISTORY 292
  9. LOGFILE
  10.   GROUP 1 '/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  11.   GROUP 2 '/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  12.   GROUP 3 '/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
  13. -- STANDBY LOGFILE
  14. DATAFILE
  15.   '/app/oracle/oradata/orcl/system01.dbf',
  16.   '/app/oracle/oradata/orcl/undotbs01.dbf',
  17.   '/app/oracle/oradata/orcl/sysaux01.dbf',
  18.   '/app/oracle/oradata/orcl/users01.dbf',
  19.   '/app/oracle/oradata/orcl/test01.dbf',
  20.   '/app/oracle/oradata/orcl/test02.dbf'
  21. CHARACTER SET WE8ISO8859P1
  22. ;
復(fù)制代碼
原始內(nèi)容
  1. -- Use this only if the current versions of all online logs are
  2. -- available.
  3. -- After mounting the created controlfile, the following SQL
  4. -- statement will place the database in the appropriate
  5. -- protection mode:
  6. --  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
  7. STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS  ARCHIVELOG
  8.     MAXLOGFILES 16
  9.     MAXLOGMEMBERS 3
  10.     MAXDATAFILES 100
  11.     MAXINSTANCES 8
  12.     MAXLOGHISTORY 292
  13. LOGFILE
  14.   GROUP 1 '/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  15.   GROUP 2 '/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  16.   GROUP 3 '/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
  17. -- STANDBY LOGFILE
  18. DATAFILE
  19.   '/app/oracle/oradata/orcl/system01.dbf',
  20.   '/app/oracle/oradata/orcl/undotbs01.dbf',
  21.   '/app/oracle/oradata/orcl/sysaux01.dbf',
  22.   '/app/oracle/oradata/orcl/users01.dbf',
  23.   '/app/oracle/oradata/orcl/test01.dbf',
  24.   '/app/oracle/oradata/orcl/test02.dbf'
  25. CHARACTER SET WE8ISO8859P1
  26. ;  
  27. -- Commands to re-create incarnation table
  28. -- Below log names MUST be changed to existing filenames on
  29. -- disk. Any one log file from each branch can be used to
  30. -- re-create incarnation records.
  31. -- ALTER DATABASE REGISTER LOGFILE '/home/jhxu/1_1_745367517.dbf';
  32. -- ALTER DATABASE REGISTER LOGFILE '/home/jhxu/1_1_745368659.dbf';
  33. -- Recovery is required if any of the datafiles are restored backups,
  34. -- or if the last shutdown was not normal or immediate.
  35. RECOVER DATABASE
  36. -- All logs need archiving and a log switch is needed.
  37. ALTER SYSTEM ARCHIVE LOG ALL;
  38. -- Database can now be opened normally.
  39. ALTER DATABASE OPEN;
  40. -- Commands to add tempfiles to temporary tablespaces.
  41. -- Online tempfiles have complete space information.
  42. -- Other tempfiles may require adjustment.
  43. ALTER TABLESPACE TEMP ADD TEMPFILE '/app/oracle/oradata/orcl/temp01.dbf'
  44.      SIZE 74448896  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
  45. -- End of tempfile additions.
  46. --
  47. --     Set #2. RESETLOGS case
  48. --
  49. -- The following commands will create a new control file and use it
  50. -- to open the database.
  51. -- Data used by Recovery Manager will be lost.
  52. -- The contents of online logs will be lost and all backups will
  53. -- be invalidated. Use this only if online logs are damaged.
  54. -- After mounting the created controlfile, the following SQL
  55. -- statement will place the database in the appropriate
  56. -- protection mode:
  57. --  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
  58. STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "TEST"RESETLOGS ARCHIVELOG
  59.     MAXLOGFILES 16
  60.     MAXLOGMEMBERS 3
  61.     MAXDATAFILES 100
  62.     MAXINSTANCES 8
  63.     MAXLOGHISTORY 292
  64. LOGFILE
  65.   GROUP 1 '/app/oracle/oradata/orcl/redo01.log'  SIZE 50M,
  66.   GROUP 2 '/app/oracle/oradata/orcl/redo02.log'  SIZE 50M,
  67.   GROUP 3 '/app/oracle/oradata/orcl/redo03.log'  SIZE 50M
  68. -- STANDBY LOGFILE
  69. DATAFILE
  70.   '/app/oracle/oradata/orcl/system01.dbf',
  71.   '/app/oracle/oradata/orcl/undotbs01.dbf',
  72.   '/app/oracle/oradata/orcl/sysaux01.dbf',
  73.   '/app/oracle/oradata/orcl/users01.dbf',
  74.   '/app/oracle/oradata/orcl/test01.dbf',
  75.   '/app/oracle/oradata/orcl/test02.dbf'
  76. CHARACTER SET WE8ISO8859P1
  77. ;
  78. -- Commands to re-create incarnation table
  79. -- Below log names MUST be changed to existing filenames on
  80. -- disk. Any one log file from each branch can be used to
  81. -- re-create incarnation records.
  82. -- ALTER DATABASE REGISTER LOGFILE '/home/jhxu/1_1_745367517.dbf';
  83. -- ALTER DATABASE REGISTER LOGFILE '/home/jhxu/1_1_745368659.dbf';
復(fù)制代碼

論壇徽章:
15
2015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-15 17:29:44午馬
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉雞
日期:2014-04-02 12:24:51雙子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥豬
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大;照
日期:2013-04-17 11:48:45
2 [報告]
發(fā)表于 2011-07-22 12:06 |只看該作者
和這個帖子一個要求,http://www.72891.cn/viewthread.php?tid=3565652
  1. awk '/STARTUP NOMOUNT/{t=1;a="";s=0}
  2.    t{a=(a=="")?$0:a RS $0; if (/NORESETLOGS/) s=1}
  3.    /;/&&s&&t{print a;t=0}' infile
復(fù)制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2011-07-22 13:35 |只看該作者
回復(fù) 2# rdcwayx


    執(zhí)行成功了,但是有一段沒看懂,能解釋一下嗎?
{a=(a=="")?$0:a RS $0; if (/NORESETLOGS/) s=1}

論壇徽章:
3
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亞洲杯之阿曼
日期:2015-04-07 20:00:59
4 [報告]
發(fā)表于 2011-07-22 13:54 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
15
2015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-15 17:29:44午馬
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉雞
日期:2014-04-02 12:24:51雙子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥豬
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大;照
日期:2013-04-17 11:48:45
5 [報告]
發(fā)表于 2011-07-22 13:59 |只看該作者
這個就是個簡寫:
  1. a=(a=="")?$0:a RS $0
復(fù)制代碼
轉(zhuǎn)成這個就可以看懂了:
  1. if (a=="") {a=$0} else {a=a RS $0}
復(fù)制代碼

論壇徽章:
0
6 [報告]
發(fā)表于 2011-07-22 14:46 |只看該作者
if (a=="") {a=$0} else {a=a RS $0}

這個
{a=a RS $0}
怎么理解?
是把變量a設(shè)置為a和RS 以及$0嗎?
RS在這里應(yīng)該是換行符吧,都放到a里干什么?

論壇徽章:
0
7 [報告]
發(fā)表于 2011-07-22 14:49 |只看該作者
還有最后一個
  /;/&&s&&t{print a;t=0}' infile
這個是邏輯與,就是必須同時匹配到";"以及前面匹配到的"STARTUP"和"NORES"才打印a的值,我的理解就是$0,
我怎么想也不對,應(yīng)該是邏輯或吧?
雖然執(zhí)行成功了,但是我還是希望搞明白,感謝rdcwayx 和zooyo 的解答!

論壇徽章:
0
8 [報告]
發(fā)表于 2011-07-22 16:49 |只看該作者
我的個神啊,研究了一下午,終于搞明白了,謝謝各位大俠,真是奇思妙想!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP