補資料 win和unix的檔案換行符

2021-04-24 17:07:07 字數 1020 閱讀 2240

有個系統的資料丟失了,搞來了原始報告,查了一下系統文件。

命令是這樣的: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...