有個系統的資料丟失了,搞來了原始報告,查了一下系統文件。
命令是這樣的:commit -f /u/cmoas/cfg/ooconfig -t t0011 /u/cmoas/his/t0011/2009_01_31.t0011
結果不成功,檢查log,發現日期解析成了「20-00-00 00:00:00」。
在想是不是需要dos2unix一下,結果aix下居然沒有這個命令。
沒聽說過aix有這種命令,你可以自己動手
以前,老式的電傳打字機使用兩個字元來另起新行。乙個字元把滑動架移回首位
(稱為回車, ),另乙個字元把紙上移一行 (稱為換行, )。
? ?當計算機問世以後,儲存器曾經非常昂貴。有些人就認定沒必要用兩個字元來表示
行尾。unix 開發者決定他們可以用 乙個字元來表示行尾。開發 ms-dos (以及微軟視窗) 的那些傢伙則決定沿用老式的。
所以從dos到unix的格式轉換需要把(ascii 13,八進位制15)去掉,用tr命令就可以完成。
tr -d '/015' unix.txt
??c = fgetc(ffiler);
??while( !feof(ffiler) )
? ? fputc(c,ffilew);
? ? if(c=='/n')fputc ('/r',ffilew);
? ? c=fgetc(ffiler)
還有如下一段話
那個^m是dos(windows)檔案上傳時沒有將回車+換行符轉換而產生的。如果使用ftp上傳的話,對這樣的文字檔案,應該使用ascii方式,這樣上傳時ftp會根據兩邊的檔案系統的格式進行必要的轉換,上傳後的unix檔案中就沒有那個^m了。這就是ftp中那個「p」的作用(protocol,協議)。
對二進位制檔案(圖形、壓縮、執行等),ftp傳送時一定要用binary方式,不然它會自作聰明地轉換的。
如果是採用自己的通訊軟體傳送,那麼在處理dos的回車+換行符(/r/n,16進的0dh 0ah)時把/r(0dh)去掉不傳就可以了。
重新上傳原始報告,指定傳送的方式,ok解決了。
為已存在的表增加欄位和補資料
select from price where ddate convert varchar 100 dateadd month,1,getdate 120 查詢上月的今日日期 且格式化為yyyymm 主計量單位插入 insert into base storage inrecord copy1 id...
UNIX程式設計 6 系統資料檔案和資訊
1.口令檔案 口令檔案儲存在 etc passwd中,是乙個ascii檔案 用使用者名稱或uid獲取passwd結構體資訊的函式 include struct passwd getpwuid uid t uid struct passwd getpwnam const char name 獲取口令檔...
Unix環境高階程式設計 系統資料檔案和資訊
unix口令檔案 etc passwd 包含了下表所示的字段 系統定義了兩個獲取口令檔案項的函式,在給出使用者登入名或數值使用者id後,這兩個函式能夠檢視相關項。struct passwd getpwuid uid t uid struct passwd getpwnam const char na...