截取倒数第二行的某串字符串 -- sed/head/tail/tac

来源:百度文库 编辑:神马文学网 时间:2024/04/28 07:44:56
程序输出如下结果:
[oracle@tomcat151 tbl2rowset.new]$ ./tbl2rowset -print /opt/reqsvr/data/STK_DAY_ZJLX/SZ/2009/002274.SZ.rst
========================================================================================================
#ROWNO     |TRADE_TIME     |CJBS     |SMALL_IN_VOL     |BIG_IN_VOL     |SUPER_IN_VOL     |SMALL_OUT_VOL     |BIG_OUT_VOL     |SUPER_OUT_VOL     |CJSALEORDER     |CJBUYORDER     |MIDDLE_IN_VOL     |MIDDLE_OUT_VOL     |
------------------------------------------------------------------------------------------------------
[0]     |20090706 0     |1.000000       |0.000000       |0.000000       |3371605.000000 |0.000000       |0.000000       |0.000000       |0.000000       |0.000000     |0.000000       |0.000000       |
[1]     |20090707 0     |1501.000000    |46691.000000   |993755.000000  |287131.000000  |54333.000000   |945313.000000  |253346.000000  |0.000000       |0.000000     |102255.000000  |100062.000000  |
[2]     |20090708 0     |1541.000000    |39157.000000   |1049301.000000 |562155.000000  |48520.000000   |1265081.000000 |693620.000000  |0.000000       |0.000000     |83369.000000   |94760.000000   |
[3]     |20090709 0     |1708.000000    |34035.000000   |1450957.000000 |1392041.000000 |45041.000000   |1647723.000000 |1773765.000000 |0.000000       |0.000000     |79297.000000   |88967.000000   |
[4]     |20090710 0     |1579.000000    |26748.000000   |1617848.000000 |1595218.000000 |30069.000000   |1505136.000000 |2239587.000000 |0.000000       |0.000000     |86233.000000   |74996.000000   |
[5]     |20090713 0     |1671.000000    |52174.000000   |1316078.000000 |950135.000000  |37670.000000   |1515841.000000 |1356216.000000 |0.000000       |0.000000     |82717.000000   |85761.000000   |
[6]     |20090714 0     |1561.000000    |41210.000000   |1255217.000000 |720865.000000  |44637.000000   |1187401.000000 |483953.000000  |0.000000       |0.000000     |92919.000000   |89091.000000   |
[7]     |20090715 0     |1583.000000    |44725.000000   |1352407.000000 |975240.000000  |41072.000000   |1121590.000000 |649135.000000  |0.000000       |0.000000     |99691.000000   |92868.000000   |
[8]     |20090716 0     |1596.000000    |37939.000000   |1195799.000000 |1435653.000000 |40798.000000   |1288621.000000 |2745646.000000 |0.000000       |0.000000     |93032.000000   |87895.000000   |
[9]     |20090717 0     |2437.000000    |27200.000000   |2389491.000000 |2662723.000000 |38723.000000   |3282704.000000 |3230814.000000 |0.000000       |0.000000     |96240.000000   |98131.000000   |
[10]    |20090720 0     |2188.000000    |50106.000000   |2364349.000000 |1260470.000000 |46968.000000   |1899086.000000 |673133.000000  |0.000000       |0.000000     |104820.000000  |116782.000000  |
[11]    |20090721 0     |2087.000000    |42005.000000   |2083727.000000 |1415836.000000 |52891.000000   |1424169.000000 |571291.000000  |0.000000       |0.000000     |112586.000000  |129017.000000  |
[12]    |20090722 0     |1984.000000    |56774.000000   |1498336.000000 |345250.000000  |51559.000000   |1515884.000000 |760948.000000  |0.000000       |0.000000     |119884.000000  |125040.000000  |
[13]    |20090723 0     |1817.000000    |48751.000000   |1442887.000000 |523671.000000  |58011.000000   |1028546.000000 |294040.000000  |0.000000       |0.000000     |107906.000000  |120884.000000  |
[14]    |20090728 0     |1764.000000    |58719.000000   |1230527.000000 |280519.000000  |51406.000000   |1300816.000000 |653728.000000  |0.000000       |0.000000     |110234.000000  |113582.000000  |
[15]    |20090729 0     |1815.000000    |51185.000000   |1545797.000000 |928271.000000  |61166.000000   |1151153.000000 |435927.000000  |0.000000       |0.000000     |96611.000000   |97824.000000   |
[16]    |20090730 0     |1730.000000    |52599.000000   |1134677.000000 |609464.000000  |61539.000000   |1000742.000000 |338119.000000  |0.000000       |0.000000     |103400.000000  |104868.000000  |
[17]    |20090731 0     |1532.000000    |52740.000000   |824335.000000  |242720.000000  |55068.000000   |954613.000000  |429715.000000  |0.000000       |0.000000     |103376.000000  |94885.000000   |
[18]    |20090803 0     |1747.000000    |52671.000000   |1262976.000000 |426370.000000  |45033.000000   |1284146.000000 |722652.000000  |0.000000       |0.000000     |106193.000000  |113451.000000  |
[19]    |20090804 0     |2020.000000    |50375.000000   |1870257.000000 |982542.000000  |49730.000000   |1667788.000000 |774551.000000  |0.000000       |0.000000     |111855.000000  |113381.000000  |
[20]    |20090805 0     |1828.000000    |48872.000000   |1421830.000000 |813416.000000  |54401.000000   |1277934.000000 |343080.000000  |0.000000       |0.000000     |111618.000000  |116513.000000  |
[21]    |20090806 0     |1569.000000    |47527.000000   |987085.000000  |382458.000000  |56834.000000   |838080.000000  |379014.000000  |0.000000       |0.000000     |108485.000000  |126208.000000  |
[22]    |20090807 0     |1425.000000    |50894.000000   |816327.000000  |287970.000000  |49579.000000   |766384.000000  |256306.000000  |0.000000       |0.000000     |98037.000000   |110813.000000  |
[23]    |20090810 0     |1212.000000    |52412.000000   |669347.000000  |148910.000000  |52970.000000   |472862.000000  |104300.000000  |0.000000       |0.000000     |85440.000000   |78109.000000   |
[24]    |20090812 0     |1227.000000    |40601.000000   |772651.000000  |381980.000000  |52819.000000   |547708.000000  |135125.000000  |0.000000       |0.000000     |75798.000000   |88267.000000   |
[25]    |20090813 0     |845.000000     |34445.000000   |376048.000000  |696802.000000  |35799.000000   |407813.000000  |117903.000000  |0.000000       |0.000000     |51040.000000   |65724.000000   |
[26]    |20090814 0     |1468.000000    |38871.000000   |880353.000000  |290425.000000  |65090.000000   |719651.000000  |258398.000000  |0.000000       |0.000000     |95508.000000   |103848.000000  |
[27]    |20090817 0     |1332.000000    |52473.000000   |908957.000000  |303406.000000  |50256.000000   |565460.000000  |297872.000000  |0.000000       |0.000000     |91564.000000   |70702.000000   |
[28]    |20090818 0     |1199.000000    |44175.000000   |578067.000000  |152427.000000  |49215.000000   |741900.000000  |230000.000000  |0.000000       |0.000000     |75161.000000   |97726.000000   |
[29]    |20090819 0     |1209.000000    |48571.000000   |712046.000000  |251410.000000  |51748.000000   |542667.000000  |49599.000000   |0.000000       |0.000000     |79476.000000   |76113.000000   |
[30]    |20090820 0     |1203.000000    |46225.000000   |513827.000000  |147713.000000  |55520.000000   |626581.000000  |312406.000000  |0.000000       |0.000000     |78469.000000   |71769.000000   |
[31]    |20090821 0     |1358.000000    |51295.000000   |739770.000000  |187010.000000  |38980.000000   |842402.000000  |466991.000000  |0.000000       |0.000000     |94629.000000   |87954.000000   |
[32]    |20090824 0     |1265.000000    |43952.000000   |706804.000000  |211543.000000  |48161.000000   |837164.000000  |340151.000000  |0.000000       |0.000000     |78061.000000   |90595.000000   |
[33]    |20090825 0     |1260.000000    |44016.000000   |805185.000000  |353042.000000  |47671.000000   |550433.000000  |203317.000000  |0.000000       |0.000000     |97281.000000   |75208.000000   |
[34]    |20090826 0     |1307.000000    |41635.000000   |843643.000000  |229846.000000  |42259.000000   |770578.000000  |612058.000000  |0.000000       |0.000000     |88009.000000   |80102.000000   |
[35]    |20090827 0     |1364.000000    |43458.000000   |872516.000000  |595250.000000  |46053.000000   |886731.000000  |559910.000000  |0.000000       |0.000000     |84978.000000   |90029.000000   |
[36]    |20090828 0     |1830.000000    |49857.000000   |1563206.000000 |1217669.000000 |48836.000000   |1410961.000000 |1046505.000000 |0.000000       |0.000000     |103139.000000  |92278.000000   |
[37]    |20090831 0     |1241.000000    |39539.000000   |1082055.000000 |1180829.000000 |40030.000000   |796336.000000  |458784.000000  |0.000000       |0.000000     |81984.000000   |66298.000000   |
[38]    |20090901 0     |1352.000000    |46612.000000   |851904.000000  |299782.000000  |52839.000000   |735046.000000  |233101.000000  |0.000000       |0.000000     |99580.000000   |87420.000000   |
[39]    |20090902 0     |1012.000000    |32872.000000   |492269.000000  |191619.000000  |47662.000000   |541810.000000  |164314.000000  |0.000000       |0.000000     |56912.000000   |76518.000000   |
[40]    |20090903 0     |1266.000000    |45462.000000   |694536.000000  |170042.000000  |44370.000000   |875407.000000  |555048.000000  |0.000000       |0.000000     |77425.000000   |81535.000000   |
[41]    |20090904 0     |1273.000000    |41404.000000   |857289.000000  |433830.000000  |43032.000000   |842756.000000  |217059.000000  |0.000000       |0.000000     |64274.000000   |73611.000000   |
[42]    |20090907 0     |1347.000000    |51574.000000   |921040.000000  |377731.000000  |35342.000000   |878692.000000  |447886.000000  |0.000000       |0.000000     |82942.000000   |86927.000000   |
[43]    |20090908 0     |1138.000000    |32918.000000   |744648.000000  |271870.000000  |42490.000000   |719507.000000  |509780.000000  |0.000000       |0.000000     |62075.000000   |74379.000000   |
[44]    |20090909 0     |1288.000000    |37212.000000   |1015469.000000 |418368.000000  |39011.000000   |910243.000000  |845122.000000  |0.000000       |0.000000     |74218.000000   |74399.000000   |
[45]    |20090910 0     |1250.000000    |38484.000000   |897933.000000  |628176.000000  |45236.000000   |679145.000000  |195051.000000  |0.000000       |0.000000     |83888.000000   |95733.000000   |
[46]    |20090911 0     |1161.000000    |41044.000000   |605622.000000  |309769.000000  |52396.000000   |645450.000000  |225689.000000  |0.000000       |0.000000     |69995.000000   |76486.000000   |
[47]    |20090914 0     |1256.000000    |36866.000000   |784525.000000  |275541.000000  |42059.000000   |768697.000000  |532640.000000  |0.000000       |0.000000     |88926.000000   |78176.000000   |
[48]    |20090915 0     |1354.000000    |34842.000000   |916409.000000  |582236.000000  |38003.000000   |988442.000000  |613131.000000  |0.000000       |0.000000     |75844.000000   |98008.000000   |
[49]    |20090916 0     |1290.000000    |43397.000000   |935963.000000  |418719.000000  |41100.000000   |761841.000000  |298330.000000  |0.000000       |0.000000     |77886.000000   |85383.000000   |
[50]    |20090917 0     |1505.000000    |40712.000000   |1173840.000000 |551366.000000  |39720.000000   |1223157.000000 |888993.000000  |0.000000       |0.000000     |84864.000000   |87726.000000   |
[51]    |20090918 0     |1665.000000    |40451.000000   |1483450.000000 |948809.000000  |38689.000000   |1302602.000000 |822067.000000  |0.000000       |0.000000     |90511.000000   |88524.000000   |
[52]    |20090921 0     |1200.000000    |34433.000000   |808006.000000  |556680.000000  |38301.000000   |853481.000000  |317952.000000  |0.000000       |0.000000     |69221.000000   |73350.000000   |
[53]    |20090922 0     |1373.000000    |36904.000000   |1032121.000000 |835444.000000  |45005.000000   |1045107.000000 |1011223.000000 |0.000000       |0.000000     |77353.000000   |87312.000000   |
[54]    |20090923 0     |1221.000000    |39431.000000   |924109.000000  |463869.000000  |33051.000000   |649594.000000  |231030.000000  |0.000000       |0.000000     |83280.000000   |79898.000000   |
[55]    |20090924 0     |1233.000000    |42217.000000   |718721.000000  |513974.000000  |45902.000000   |788388.000000  |395322.000000  |0.000000       |0.000000     |73058.000000   |73677.000000   |
[56]    |20090925 0     |1166.000000    |31315.000000   |684759.000000  |312518.000000  |50539.000000   |746550.000000  |184810.000000  |0.000000       |0.000000     |61561.000000   |86079.000000   |
[57]    |20090928 0     |1.000000       |0.000000       |0.000000       |2208271.000000 |0.000000       |0.000000       |0.000000       |0.000000       |0.000000     |0.000000       |0.000000       |
[58]    |20090929 0     |288.000000     |6499.000000    |226989.000000  |1963690.000000 |9951.000000    |185896.000000  |75800.000000   |0.000000       |0.000000     |14600.000000   |19601.000000   |
[59]    |20090930 0     |829.000000     |29061.000000   |458978.000000  |250761.000000  |38405.000000   |353084.000000  |56742.000000   |0.000000       |0.000000     |58184.000000   |56158.000000   |
[60]    |20091009 0     |949.000000     |36213.000000   |484263.000000  |96590.000000   |33312.000000   |509258.000000  |242195.000000  |0.000000       |0.000000     |60452.000000   |60770.000000   |
[61]    |20091010 0     |1.000000       |0.000000       |0.000000       |0.000000       |0.000000       |0.000000       |25500.000000   |0.000000       |0.000000     |0.000000       |0.000000       |
[62]    |20091012 0     |888.000000     |31943.000000   |487038.000000  |184062.000000  |38044.000000   |452815.000000  |91669.000000   |0.000000       |0.000000     |56598.000000   |64528.000000   |
[63]    |20091013 0     |787.000000     |28826.000000   |442596.000000  |127710.000000  |33940.000000   |388678.000000  |259570.000000  |0.000000       |0.000000     |51033.000000   |55879.000000   |
[64]    |20091014 0     |1089.000000    |47204.000000   |595679.000000  |243550.000000  |40089.000000   |524944.000000  |310820.000000  |0.000000       |0.000000     |70167.000000   |65260.000000   |
[65]    |20091015 0     |929.000000     |40780.000000   |530189.000000  |284885.000000  |37427.000000   |427607.000000  |224075.000000  |0.000000       |0.000000     |72701.000000   |47570.000000   |
[66]    |20091016 0     |926.000000     |33987.000000   |571273.000000  |346225.000000  |37772.000000   |406634.000000  |121100.000000  |0.000000       |0.000000     |51900.000000   |66722.000000   |
[67]    |20091019 0     |1026.000000    |34028.000000   |504309.000000  |256788.000000  |42148.000000   |551358.000000  |288688.000000  |0.000000       |0.000000     |59992.000000   |77572.000000   |
[68]    |20091020 0     |1414.000000    |40243.000000   |942383.000000  |534846.000000  |47316.000000   |1028033.000000 |499719.000000  |0.000000       |0.000000     |88323.000000   |79976.000000   |
[69]    |20091021 0     |1172.000000    |42381.000000   |805529.000000  |320184.000000  |40978.000000   |663705.000000  |238701.000000  |0.000000       |0.000000     |74920.000000   |66450.000000   |
[70]    |20091022 0     |1221.000000    |39883.000000   |681846.000000  |233613.000000  |41601.000000   |950852.000000  |439330.000000  |0.000000       |0.000000     |72021.000000   |85686.000000   |
[71]    |20091023 0     |1334.000000    |42916.000000   |897642.000000  |652062.000000  |44042.000000   |860081.000000  |373423.000000  |0.000000       |0.000000     |66013.000000   |83486.000000   |
[72]    |20091026 0     |1174.000000    |37038.000000   |768032.000000  |654556.000000  |44970.000000   |864543.000000  |373235.000000  |0.000000       |0.000000     |59010.000000   |66407.000000   |
[73]    |20091027 0     |1326.000000    |36280.000000   |966762.000000  |1191180.000000 |51270.000000   |661127.000000  |265756.000000  |0.000000       |0.000000     |81972.000000   |87147.000000   |
[74]    |20091028 0     |1123.000000    |31223.000000   |572460.000000  |1132098.000000 |55040.000000   |662234.000000  |424926.000000  |0.000000       |0.000000     |43641.000000   |83210.000000   |
[75]    |20091029 0     |966.000000     |33595.000000   |525538.000000  |360550.000000  |42751.000000   |490769.000000  |223610.000000  |0.000000       |0.000000     |59270.000000   |62989.000000   |
------------------------------------------------------------------------------------------------------
Text
其中第二列表示那一天的数据,现在要做自动监控脚本,看每天的数据是否能正常输出:
上面的数据,要获取“20091029”
原来想把某一天的日期带进去直接grep,但是如果数据里有这个值这不就不对了吗?
作为最精确的方式:
1. 获取输出的倒数第二行
2. 截取相关的字符串,和当天的时间进行比较。
第二点容易,第一点不知道怎么做。
截取某一行,用sed最好,但是这个输出的行情是在变化的,一种方式是将输出内容,写到文件中,分析文件。
自己想用管道的方式:
用sed,试了几次,不支持行数是负数的(很多场合,负数代表着从尾部开始),想了一下用这种方式也可以:
先tail,输出最后2行,再用head,得到第一行,这样出来的结果就是倒数第二行了
[oracle@tomcat151 tbl2rowset.new]$ ./tbl2rowset -print /opt/reqsvr/data/STK_DAY_ZJLX/SZ/2009/002274.SZ.rst | tail -2 | head -1
[75]    |20091029 0     |966.000000     |33595.000000   |525538.000000  |360550.000000  |42751.000000   |490769.000000  |223610.000000  |0.000000       |0.000000     |59270.000000   |62989.000000   |
Text
还有一种方法:通过tac将输出倒置,用sed取第二行
[oracle@tomcat151 tbl2rowset.new]$ ./tbl2rowset -print /opt/reqsvr/data/STK_DAY_ZJLX/SZ/2009/002274.SZ.rst | tac | sed -n '2p'
[75]    |20091029 0     |966.000000     |33595.000000   |525538.000000  |360550.000000  |42751.000000   |490769.000000  |223610.000000  |0.000000       |0.000000     |59270.000000   |62989.000000   |
Text