第一篇:SAP ABAP OLE操作EXCEL小結
ABAP直接操作EXCEL實現數據處理。這里是用OLE實現操作EXCEL的。現在還有 DOI操作EXCEL等方法。以后用到再做介紹。此處不是直接生成EXCEL文件,而是從 服務器已經上傳的EXCEL模板中下載模板然后打開修改實現數據保存。也可以直接創建 新的EXCEL文件往里面傳遞數據并設置格式。這里不做介紹。
1.采用模板文件實現。上傳EXCEL模板 T-code:SMW0
注意選擇的是binary data(對于EXCEL模版上傳)如果是HTML上傳,對于存于www.tmdps.cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4.IF lc_fullpath = ''.MESSAGE '不能打開excel' TYPE 'E'.ENDIF.IF sy-subrc = 0.p_dest = lc_fullpath.* concatenate p_objid '.XLS' into ls_objnam.CONDENSE ls_objnam NO-GAPS.SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF lo_objdata WHERE srtf2 = 0 AND relid = 'MI' AND objid = p_objid.“先嘗試取一下,接著檢查是否取到制定模版問件 *檢查表wwwdata中是否存在所指定的模板文件
IF sy-subrc NE 0 OR lo_objdata-objid EQ space.“如果不存在,則給出錯誤提示
CONCATENATE '模板文件' ls_objnam '不存在' INTO ls_errtxt.MESSAGE ls_errtxt TYPE 'I'.ENDIF.ls_destination = p_dest.”保存路徑
*如果存在,調用DOWNLOAD_WEB_OBJECT 函數下載模板到路徑下
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT' EXPORTING key = lo_objdata destination = ls_destination IMPORTING rc = li_rc.IF li_rc NE 0.CONCATENATE '模板文件:' ls_objnam '下載失敗' INTO ls_errtxt.MESSAGE ls_errtxt TYPE 'E'.ENDIF.fname = ls_destination.ENDIF.ENDFORM.“fm_excel
3.下載完模板后,打開模板文件,填入數據 DATA: EXCEL TYPE ole2_object, WORKBOOK TYPE ole2_object, SHEET TYPE ole2_object.CREATE OBJECT excel 'EXCEL.APPLICATION'.”Create EXCEL OBJECT IF sy-subrc NE 0.EXIT.ENDIF.SET PROPERTY OF excel 'Visible' = 0.“1/0 是否顯示EXCEL CALL METHOD OF excel 'Workbooks' = workbook.CALL METHOD OF workbook 'Open' EXPORTING #1 = fname..”打開上面下載路徑下的excel文件
CALL METHOD OF excel 'Sheets' = sheet EXPORTING #1 = 1.CALL METHOD OF sheet 'Select'.CALL METHOD OF sheet 'ACTIVATE'.“sheet 激活 DATA SHEETNAME TYPE STRING.SHEETNAME = 'TESTTESTTEST'.SET PROPERTY OF sheet 'NAME' = sheetname.“設定sheet名稱 *此處假設內表itab 中已經存在需要寫入excel中的數據 *并且假如從模板的第7行開始插入數據 DATA ITAB LIKE STANDARD TABLE OF SFLIGHT.DATA WA LIKE SFLIGHT.DATA: TAB TYPE I,BOD(5)TYPE C.SELECT * INTO TABLE ITAB FROM SFLIGHT UP TO 8 ROWS.LOOP AT itab INTO wa.tab = sy-tabix + 6.*在excel中插入一行
PERFORM excel_row_insert USING sheet tab 1.*填充所插入行的每個單元格的數據
PERFORM fill_range USING tab 1 wa-t01.PERFORM fill_range USING tab 2 wa-t02.PERFORM fill_range USING tab 3 wa-t03.PERFORM fill_range USING tab 4 wa-t04.PERFORM fill_range USING tab 5 wa-t05.PERFORM fill_range USING tab 6 wa-t06.ENDLOOP.*設置EXCEL中所插入的數據行邊框線格式為黑色有邊框
bod = tab.CONDENSE bod NO-GAPS.CONCATENATE 'A6:F' bod INTO bod.PERFORM borderrange USING excel bod.PERFORM sub_excel_save.“保存excel數據
*&-------* *& Form sub_excel_save *&-------* * text *--------* FORM sub_excel_save.GET PROPERTY OF excel 'ActiveSheet' = sheet.“獲取活動SHEET FREE OBJECT sheet.FREE OBJECT workbook.GET PROPERTY OF excel 'ActiveWorkbook' = workbook.CALL METHOD OF workbook 'SAVE'.SET PROPERTY OF excel 'Visible' = 1.”是否顯示EXCEL 此處顯示不退出 * SET PROPERTY OF excel 'Visible' = 1.* CALL METHOD OF workbook 'CLOSE'.* CALL METHOD OF excel 'QUIT'.注釋部分為不顯示直接退出 FREE OBJECT sheet.FREE OBJECT workbook.FREE OBJECT excel.ENDFORM.“save_book
*&-------* *& 向excel中的指定行插入N行
*&-------* FORM excel_row_insert USING lcobj_sheet lc_row lc_count.DATA lc_range TYPE ole2_object.DATA h_borders TYPE ole2_object.DO lc_count TIMES.CALL METHOD OF lcobj_sheet 'Rows' = lc_range EXPORTING #1 = 6.CALL METHOD OF lc_range 'Copy'.“COPY第6行插入一個新行
CALL METHOD OF lcobj_sheet 'Rows' = lc_range EXPORTING #1 = lc_row.CALL METHOD OF lc_range 'Insert'.CALL METHOD OF lc_range 'ClearContents'.”是否需要清空Cell ENDDO.ENDFORM.“excel_row_insert *&-------* *& Form fill_range *&-------* * text 填充EXCEL 單元格
*--------* *-->VALUE(F_ROW)text *-->VALUE(F_COL)text *-->VALUE(F_VALUE)text *--------* FORM fill_range USING value(f_row)value(f_col)value(f_value).DATA: row TYPE i, col TYPE i.row = f_row.col = f_col.CALL METHOD OF excel 'CELLS' = cell EXPORTING #1 = row #2 = col.SET PROPERTY OF cell 'VALUE' = f_value.ENDFORM.”fill_range *&-------* *& Form borderrange *&-------* * text:設置EXCEL中所插入的數據行邊框線格式 *--------* *-->LCOBJ_EXCEL text *-->RANGE text *--------* FORM borderrange USING lcobj_excel range.DATA: lc_cell TYPE ole2_object , lc_borders TYPE ole2_object.CALL METHOD OF lcobj_excel 'RANGE' = lc_cell EXPORTING #1 = range.DO 4 TIMES.CALL METHOD OF lc_cell 'BORDERS' = lc_borders EXPORTING #1 = sy-index.SET PROPERTY OF lc_borders 'LineStyle' = '1'.SET PROPERTY OF lc_borders 'WEIGHT' = 2.“4=max SET PROPERTY OF lc_borders 'ColorIndex' = '1'.ENDDO.FREE OBJECT lc_borders.FREE OBJECT lc_cell.ENDFORM.”borderrange
暫時只用到了這么多,還有ABAP設置EXCEL字體,對齊方式等功能。什么時候用到了再 做研究。希望對大家有所幫助。
第二篇:操作數據庫小結
一.查詢操作
對數據進行查詢操作時,有兩種情況:一是查詢單個值,二是 查詢若干條記錄。
1、查詢單個值
需要使用Command對象的ExecuteScalar()方法:步驟如下:(1)、創建Connection對象(數據庫連接對象)。(2)、創建查詢用的SQL語句。(3)、利用SQL語句和Connection對象創建Command對象。(4)、打開數據庫連接,調用Connection對象的Open()方法。(5)、調用Command對象的ExecuteScalar()方法,返回一個標量值。(6)、操作完成后關閉數據庫連接,調用Connection對象的Close()方法。
2、查詢若干條記錄
需要使用Command對象的ExecuteReader()方法:步驟如下:(1)、創建Connection對象(數據庫連接對象)。(2)、創建查詢用的SQL語句。(3)、利用SQL語句和Connection對象創建Command對象。(4)、打開數據庫連接,調用Connection對象的Open()方法。(5)、調用Command對象的ExecuteReader()方法,返回一個DataReader對象。(6)、調用DataReader對象的Read()方法逐行讀取記錄,如果讀到記錄返回Ture,否則返回False.(7)、使用(type)dataReader[列名或索引]的方式讀取這一行中某一列的值。(8)、關閉DataReader對象(9)、操作完成后關閉數據路連接,調用Connection對象的Close()方法。
二、非查詢操作
對數據庫執行非查詢操作時,包括增加,修改,刪除數據,都使用Command對象的ExecuteNonQuery()方法,步驟如下:
(1)、創建Connection對象(數據庫連接對象)(2)、創建增刪改用的SQL語句。(3)、利用SQL語句和Connection對象創建Command對象。(4)、打開數據庫連接,調用Connection對象的Open()方法。(5)、調用Command對象的ExecuteNonQuery()方法執行命令,返回受影響的行數。(6)、操作完成后關閉數據庫連接,調用Connection對象的Close()方法。
本章總結
1、使用DataReader查詢數據記錄,通過Command對象的ExecuteReader()方法返回一個DataReader對象。
2、使用DataReader讀取數據室每次調用Read()方法讀取一行數據。
3、DataReader使用完后要調用它的Close()方法關閉。
4、使用Command對象的ExecuteNonQuery()方法對數據進行增刪改的操作。
5、ExecuteNonQuery()方法返回受影響的行數。
6、ListView(列表視圖)控件有5種視圖模式,重點是Details 列表視圖的Items屬性表示包含在空間中的所有項的結合,每一個項都是一個ListViewItem,使用Items.Add()方法向列表視圖中添加一項 調用列表視圖項的SubItems.AddRange()方法添加它的子項
ListViewItem lviStudent = new ListViewItem(loginID);創建一個ListView項 lviStudent.Tag=(int)dataReader[“StudentId”];lvStudent.Items.Add(lviStudent);//向ListView中添加一個新項 lviStudent.SubItems.AddRange(new string[] {studentName,studentNo,userState});//向當前項中添加子項
7、ContextMenuStrip(快捷菜單)控件可以與其他控件結合使用,通過設置控件的ContextMenuStrip屬性來指定它的快捷菜單。
想鼠標右鍵單擊文本框時出現快捷菜單,就選中文本框?在屬性窗口中找到它的ContextMenuStrip屬性,選擇已有的右鍵菜單控件 txtLoginId.Focus():?
下拉列表:
創建Command對象?調用Command對象的ExecuteReader()方法創建DataReader對象(sqlDataReader dataReader=command.ExecuteReader())?使用DataReader的Reader()方法逐行讀取數據(放回bool類型)?讀取當前行的某列的數據(cboGrade.Items.Add(dataReader[“列名”]))?關閉DataReader對象,Close()方法
向數據庫中添加數據:
創建Connection對象?定義要執行的SQL語句?創建Command對象?執行ExecuteNonQuery()方法?根據返回的結果進行后續的處理
雙擊顯示出ID:
MessageBox.show(dataGridView1.SelectedRows[0].cells[“ColID”].value.ToString());
刷新:
1,BindStudentByLoginID(txtBox.Text)2,listView.Items.RemoveAt(Listview1.SelectedIndices[0])//只能刪除選中的行(選中第幾個)
第三篇:運行操作小結
T-101隔油池
5格兩頭小中間大,格間水流做上下逐級流動。2個進水口,分別在第1、3格,做了個超濾管到第三格一般情況下都是進第一格。油主要集中在1、2格。
1、來水帶油且較多;
2、水量較大; 3、1905、2905、來水,水量較大且帶有較少或不帶油,因這兩個車間來水PH都大于10而隔油池的水都是酸性的所以反應比較激烈;1901來水也大
4、曝氣(第3格,左右上角)量不足,池子間液位差較大,第3、4格間水流不暢,可導致第1、2、3格水溢出。曝氣足,但第4格左上角曝氣不明顯,問題與曝氣不足時一樣。
符合1、2,聯系中控做適當調整;
符合3,進水切到第3格,進其他來水仍切回第1格;
符合4,分兩種情況,曝氣不足,一般調小配十八醇槽曝氣即可,調整后還需觀察各個曝氣點是否正常,風機運行是否正常(風機壓力不超過0.06MPa,控制在0.04MPa左右)。曝氣足,主要調整第3格右上角曝氣管末端位子。
同時了解二期曝氣有4個點,分別是配十八醇槽、二期污泥濃縮池、1號中和反應池、隔油池。
目的:水或油不要滿出,車間來水一定要去現場查看。以上出現問題請先聯系當班班長,請勿獨立操作。
T-102緩沖池
控制液位在1.9-4.1m之間。管道設計流量最大30m3/h。
日常進水流量控在8-20m3/h之間,流量的調整直接受到當天液堿量的限制。
液堿沒有或有情況要打回流,1號中和反應池停加絮凝劑PAM。
流量的調整只通過回流閥來控制。
主要問題:提升泵出現異常(漏水,異響),進行切換,及時檢修設備保證正常走水。
注意:液位、流量、液堿量
以上出現問題請先聯系當班班長,請勿獨立操作。
T-104 1號中和反應池
由于pH計探頭本身存在誤差,據實際情況控制在9.5(pH試紙對應7.5左右)以上,不要長時間維持在11.0以上,10到10.8間即可。
常見問題如下:
1、加堿不正常;
2、加PAM不正常;
3、pH計所測數據與實測出現明顯不符,靈敏度下降;
4、沉淀池即1號反應池出現跑泥現象且比較嚴重,液面已經浮滿泥;
5、出水口液位上升;
符合1,聯系中控,進行調整;,如有備用泵進行切換,同時聯系中控,及時去1#中和反應池觀察出來的液堿量大小是不是正常,然后拿ph試紙實測ph;如果液堿沒出來可能就是液堿泵自己跳閘了。
符合2,檢查加藥泵正常,確認是管道堵了,當時計量泵閥值已開最大,手動加藥劑(據流量加半碗至一碗),每次巡檢都要觀察,及時手動加藥,確保正常運行;如閥值未開最大,開到最大,沖下管子,同時也手動加點藥,經過一段時間恢復正常,據流量調小但仍需觀察,不正常,重復以上步驟巡檢手動加藥。
運行的加藥泵出現異常(漏、無法運行),管道正常,如有備用進行切換,沒有重復巡檢手動加藥,及時檢修加藥泵。符合3,取出pH計探頭,檢查無破損,清理掉污垢再檢查正常,放回原位觀察讀數及靈敏度,恢復正常仍需觀察,不正常聯系中控,協調處理,每隔一段時間就要校正ph計探頭。
符合4,跑泥一般是pH太低,出現跑泥并且嚴重,短時間控的高點(10.5-11.5),待不跑泥后將浮于液面的泥全部打散,大部分仍沉淀,這樣去到氣浮的只有少部分對氣浮影響較小,跑到氣浮的采用手動加自動處理干凈,不要積在槽里。
符合5,情況一可能是當時緩沖池流量比較大(20方以上了); 情況二排過泥后,去氣浮的管道里有空氣存在;情況三跑泥嚴重,管道里堆積了大量泥。出現情況排除由于水量大導致的,可直接進1號中間水池,沖下管道,時間控制在1到2分鐘。如果仍然不行,可通過拉消防水管反沖洗出水口來疏通管道。
以上出現問題請先聯系當班班長,請勿獨立操作。
T-106 組合氣浮
1、空壓機出現異常,無法自動動加氣。
此時氣浮槽效果比較差,控制好1號中和反應池pH,不要出現嚴重跑泥。問題解決不了,每次巡檢采用手動加壓,加壓程度,氣浮槽產生大量氣泡,2個壓力表壓力在0.4-0.45MPa。
2、氣浮槽掛泥,盡量泥多點同時控制好液位,液位通過調節出水擋板。
注意:空壓機運行是否正常,溶氣泵機封處是否漏水,彈性塊處是否帶有異響。
T-201 2號中間水池
控制液位在2.5-5.1m之間。管道設計流量最大30m3/h。
當液位過低時,關閉提升泵電源,泵的出口閥門不用動進口閥門要關的,一般要求保持2號中間水池一直正常進水且盡可能保證流量平衡,減小對生化影響(停水時間過長會導致好氧溶氧過高,活性污泥做內源呼吸,消耗自身有機物,不利于泥的生長繁殖)
由于流量的調整對后段生化過程及二沉出水有直接影響,正常情況下務必遵守2次操作之間至少在2個小時以上,流量的波動控制在1-2方。
注意溫度保持在20-40℃,抽301生活污水會直接影響到溫度(溫度會下降明顯),影響時間比較短。
常見問題:提升泵出現異常(漏、異響),進行切換,停機的水泵要關閉出水端閥門。注意事項:液位、流量、溫度
T-202 厭氧水解池
構筑物高,池體大,下半部分出現厭氧層,用于按放厭氧污泥層。水從池體由下往上流動,經過厭氧污泥層,借助厭氧循環泵將處理過的水抽到泥層下,多次經過處理,提高處理效果。
表現:液面有大量氣泡產生,因甲烷等氣體的產生周圍空氣帶有異味屬于正常。注意:
1、觀察中間集水槽出口,應無積水,發生堵塞時,集水槽積水,液位上升明顯,首先聯系中控講明情況,同時降流量(波動不要太大),一般不會全堵死,找到平衡點,先確保正常運行。
2、注意溫度,厭氧水解池溫度波動一般不大,正常不得高于40℃(夏天),因此控制好2號中間水池溫度。當溫度低于20℃(冬天)時,可通過加蒸汽冷凝水的方法控制溫度回升。
3、控制好pH,7-8之間,保證厭氧池正常工作,同時厭氧出水直接影響好氧段。4小時測一次,做好數據記錄。
4、厭氧循環泵及管道無漏點,泵無異響。
T-203/ 204 CBR/ASR好氧處理段
1、好氧溶解氧DO:2-5mg/L
2、pH:7-8,據實際情況開關加堿泵(閥值控在1%)。4小時測一次,做好數據記錄。
3、曝氣均勻、適中(通過調整風機頻率,池體上曝氣管閥門),CBR中載體不出現堆積,泡沫不大量產生,ASR段不出現泥水分離,二沉池污泥回流出水正常(ASR后段曝氣不足導致泥水分離,時間久,污泥回流出水為清水,CBR中污泥濃度下降,影響效果,污泥堆積在ASR)
4、注意ASR末端出水口情況,如發現出水槽液位上升(以往相同流量未出現),出水槽被水淹沒,管道發生堵塞(不完全堵死),操作同厭氧管道堵塞一樣,先找到平衡點,確保正常運行。聯系中控講明情況。可以暫時把污泥回流泵關了等ASR末端出水口漏出來觀察是不是有物體卡住出水口。
T-205 二沉池
注意:
1、是否跑泥。最直接,觀察二沉到氧化池出水口附近有無泥積累。出現跑泥氧化池表面有很多很明顯的浮泥,開三臺污泥回流泵。2、2號中間水池流量的波動(按要求降、提流量,操作正確)會使二沉池液面出現白色肉眼可觀察到白色接近透明的片狀漂浮物。
T-206 氧化池
注意:
1、二沉池出水口無泥積累
2、稀釋水pH,范圍6-9,4小時測一次,出現異常聯系中控。
3、液位過高,淹沒二沉池出水口,聯系中控。
風機
一期:風機3臺,風扇需手動開啟。如切換,操作后需聯系中控。曝氣點:2號中間水池,好氧CBR/ASR,污泥儲池
正常風機壓力0.06MPa一但超過0.06所以現場閥門存在憋壓馬上把相關閥門開大一些 二期:風機2臺,如切換,操作后需聯系中控。
曝氣點:配十八醇槽、二期污泥濃縮池、1號中和反應池、隔油池
機壓力0.04MPa,不高于0.06MPa 發生過皮帶斷,當時風機發出的聲音比以往聽起來低、悶。每次巡檢時都要注意:壓力是否正常、皮帶過松運行時間久會斷裂、無異常聲音(摩擦、聽起來悶、刺耳)、風機切換及時加油
壓泥機
一期壓泥機 基本操作現場演示
注意事項:
1、壓泥前顯示保壓狀態,板塊四周無濾布折疊,防止壓泥過程壓力大泥從板間噴出;
2、壓榨過程壓力不超過0.12,壓榨時間依實際情況(30-50min之間)
3、不要把濾布鏟破,壓泥開始后確保每個水龍頭出水為清水即正常,其他情況關閉水龍頭,觀察時間不少于5分鐘,因每個水龍頭出水有時間有差異,此時出水進入2號中間水池,大量跑泥影響生化過程;
4、卸泥斗上蓋板只有在卸泥過程取下,防止水漏到下面,卸泥結束打掃好衛生;
5、如清洗濾布,及時補充壓榨泵旁水桶,防止壓榨過程水不夠;
6、濾布型號分2種,5孔為大板,7孔為小板,換濾布需注意;
二期十八醇壓泥機 基本操作現場演示
注意事項
1、停壓泥,一看壓力表,不超過0.5MPa;二看出水,明顯變小,十八醇槽上回流開關時間久了,壓泥過程跑泥較多使壓力上不去;
2、壓榨過程需看著壓力表不超過0.8MPa,壓榨過程5分鐘左右時間較短,不要走開,壓榨完成后過10分鐘再卸;
3、因要求出水要為中性,因此每次壓前確保十八醇以配為中性;
4、十八醇壓濾水池注意液位,過低時為防止泵空抽,泵停機,關閉出水閥門,操作一定要聯系中控,否則后果嚴重,因壓濾水是排到氧化池,直接影響出水;
備注:十八醇污泥螺桿泵只能在十八醇反應池ph快配好然后在壓十八醇可以開起來,壓完及時把泵和風扇關了。
二期加藥間
基本操作現場演示即可
注意事項:
1、每次巡檢,剩余量已不足到下次巡檢就要加藥
2、開水龍頭,待液位到達加藥桶一半加藥,加藥要慢,過快會產生過多塊狀絮凝體,會堵管道
3、加藥量據實際情況,加藥時間一般在25鐘左右,不要忘記關水龍頭出現滿出來情況;
常見問題:
1、計量泵異常,先切換另外一臺計量泵再檢查故障情況。
2、管道出現堵塞,閥值開最大,沖下管道
3、加藥忘記關滿出來
4、只要出現異常,確保正常走水,1號反應池每次巡檢就要觀察絮凝情況及手動加藥
第四篇:2009三季度操作小結
2011年操作運動會總結
為迎接新公司成立以來第一屆操作運動會的召開,根據公司選拔工作安排,我車間做了相應具體部署。首先,成立操作比武領導小組,召開職能人員會議宣傳,并通過懸掛標語,黑板報等形式進行大力宣傳操作運動會精神,調動廣大員工苦練技術的積極性,掀起群眾性的練兵熱潮。
4月份,車間針對轉崗人員多操作技術差的情況下,安排輪班加強練兵,苦練操作技術,通過開展業余、崗位、重點幫教的多種形式的練兵方式,來提高全體值車工的操作水平。經過三個月的苦練,車間整體操作水平得到大幅度的提高。5月份,為強化練兵,車間在全體員工中開展單項抽簽賽,并進行了嚴格的理論培訓和考試,取得了較好的效果。
在練兵期間,教練耐心輔導,每個動作都進行檢查和糾正,對個別臨時工因練兵造成產量不能完成的,下班后,教練幫助加班趕產。輪班更是合理安排,讓當班選手有時間練兵。
經過大家的共同努力,選手們在參賽機臺上鎮定自若,充分發揮個人的優勢,取得了優異成績。絡筒工序劉瓊排紗1!18″
4、單項28″的成績排名第一。捻線工序黨紅艷以四筒23″、五錠24″的成績成績排名第一。特別是麻妮超,勤奮好學,工作時間不長,以22″86的五錠成績破紀錄。經過8天的實際操作選拔和緊張的理論考試,取得了優異的成績。
在本次操作運動會中存在的不足,由于轉崗人員多,新手沒有經驗,心理素質差,臨場沒有發揮好。對照以前的選手成績還相差甚遠。
在今后的工作中,針對這次操作選拔中出現的問題和差距,將進一步加強操作管理,開展形式多樣的練兵,特別是吸取本次操作運動會中好的經驗,總結教訓,筒并捻車間
第五篇:Shell命令文本操作命令小結
Shell命令文件操作命令小結
顯示文本文檔中某幾行: 顯示第n行: sed-n 'np' test.txt 或 head-n test.txt |tail-1 顯示第m到第n行: sed-n 'm,np' test.txt 或 head-n test.txt | tail-(n-m)顯示某一文件夾folder/下所占存儲空間: du-sh folder/
刪除某文件夾下的特定文件: 例:刪除某文件加下的軟連接文件 rm-f `ls-l|grep ^l|awk `{print $8}` 返回上次進入的目錄:cd-刪除一個文本文檔中所有內容: 切換到命令行模式 :1,$d
使用rm刪除一個目錄下的除了ttt以外的所有文件 解決:
1.ls | grep-v ttt | xargsrm {} 2.ls | grep-v ttt | xargsrm 3.mvttt /tmp/ &&rm-rf * && mv /tmp/ttt./ 4.find.-name e-prune-o-print | xargsrm-rf 5.find.-name e-prune-o-name dir-prune-o-print | xargsrm-rf {} 6.刪除目錄下的除去ttt和目錄外所有文件 d=/tjy/ fori in `ls $d`;do if [ $i!= “ttt” ];then
j=`file $d$i | awk '{print $2}'` if [ $j!= “directory” ];then rm-rf $d$i fi fi done
利用shell命令分割文件: 系統運維的過程中,日志文件往往非常大,這樣就要求對日志文件進行分割,在此特用shell腳本對文件進行分割 方法一: #!/bin/bash
linenum=`wc-l httperr8007.log| awk '{print $1}'` n1=1 file=1
while [ $n1-lt $linenum ] do n2=`expr $n1 + 999`
sed-n “${n1}, ${n2}p” httperr8007.log > file_$file.log n1=`expr $n2 + 1` file=`expr $file + 1` done 其中httperr8007.log為你想分割的大文件,file_$file.log 為分割后的文件,最后為file_1.log,file_2.log,file_3.log……,分割完后的每個文件只有1000行(參數可以自己設置)方法二: split 參數:
-b :后面可接欲分割成的檔案大小,可加單位,例如 b, k, m 等;-l :以行數來進行分割; #按每個文件1000行來分割除 split-l 1000 httperr8007.log httperr httpaa,httpab,httpac........#按照每個文件100K來分割 split-b 100k httperr8007.log http httpaa,httpab,httpac........使用alias來自定義命令
還有一個使工作變得輕松的方法是使用命令別名。命令別名通常是其他命令的縮寫,用來減少鍵盤輸入。命令格式為: alias [alias-name=’original-command’]
其中,alias-name是用戶給命令取的別名,original-command是原來的命令和參數。需要注意的是,由于Bash是以空格或者回車來識別原來的命令的,所以如果不使用引號就可能導致Bash只截取第一個字,從而出現錯誤。如果alias命令后面不使用任何參數,則顯示當前正在使用的被別名化的命令及其別名。為命令取的別名在該次登錄期間始終有效。如果用戶需要別名在每次登錄時都有效,那么就將alias命令寫到初始化腳本文件中。
這是一些很多人認為有用的別名,可以把它們寫入初始化腳本文件中來提高工作效率: alias ll=’ls –l’ alias log=’logout’ alias ls=’ls –F’
如果您是一名DOS用戶并且習慣了DOS命令,可以用下面的別名定義使 Linux表現得象DOS一樣: aliasdir=’ls’ alias copy=’cp’ alias rename=’mv’ alias md=’mkdir’ alias rd=’rmdir’
注意:在定義別名時,等號兩邊不能有空格,否則shell不能決定您需要做什么。僅在命令中包含空格或特殊字符時才需要引號。如果鍵入不帶任何參數的alias命令,將顯示所有已定義的別名。