關於linux下的文字檔案格式轉換問題

2021-07-12 12:05:48 字數 3277 閱讀 4177

1樓:

這個獲取第4列:

awk '' a.txt

這個輸出:第1列[ ]第4列[ ]第5列 - (中間是tab相隔)

awk '' a.txt

cut 預設以tab鍵為欄位分隔符,從man page中的這句話可以看出:

-d, --delimiter=delim

use delim instead of tab for field delimiter

awk 則不區分tab還是空格,其 man page中有如下描述:

fields ...... in the special case that fs is a single space, fields are separated by runs of spaces and/or tabs and/or newlines. ......

fs the input field separator, a space by default. see fields, above.

2樓:匿名使用者

linux下文字檔案格式轉換有不同情景:

如果你需要在linux 中操作windows下的檔案,那麼你可能會經常遇到檔案編碼轉換的問題。windows中預設的檔案格式是gbk(gb2312),而linux一般都是utf-8。下面介紹一下,在linux中如何檢視檔案的編碼及如何進行對檔案進行編碼轉換。

檢視檔案編碼

在linux中檢視檔案編碼可以通過以下幾種方式:

1.在vim 中可以直接檢視檔案編碼

shell**

:set fileencoding

即可顯示檔案編碼格式。

如果你只是想檢視其它編碼格式的檔案或者想解決用vim檢視檔案亂碼的問題,那麼你可以在

~/.vimrc 檔案中新增以下內容:

shell**

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

這樣,就可以讓vim自動識別檔案編碼(可以自動識別utf-8或者gbk編碼的檔案),其實就是依照 fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ascii)編碼開啟。

2. enca (如果你的系統中沒有安裝這個命令,可以用sudo yum install -y enca 安裝 )檢視檔案編碼

$ enca filename

filename: universal transformation format 8 bits; utf-8

crlf line terminators

需要說明一點的是,enca對某些gbk編碼的檔案識別的不是很好,識別時會出現:

unrecognized encoding

檔案編碼轉換

1.在vim中直接進行轉換檔案編碼,比如將一個檔案轉換成utf-8格式

shell**

:set fileencoding=utf-8

2. enconv 轉換檔案編碼,比如要將一個gbk編碼的檔案轉換成utf-8編碼,操作如下

enconv -l zh_cn -x utf-8 filename

3. iconv 轉換,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

比如將一個utf-8 編碼的檔案轉換成gbk編碼

iconv -f gbk -t utf-8 file1 -o file2

3樓:

awk '' a.txt

windows的文字檔案如何轉換成linux的文字檔案?

4樓:體育放蕩不羈愛社會

使用linux系統中自帶的流文字編輯器sed/dos/windows和linux/unix的檔案換行回車格式不同, 基於 dos/windows 的文字檔案在每一行末尾有一個cr(回車)和lf(換行),而 unix 文字只有一個換行。

把dos/windows下的檔案移至linux/unix系統,雖然很多程式不在乎 dos/windows 格式的 cr/lf 文字檔案,但是有幾個程式卻在乎 -- 最著名的是 bash,只要一遇到回車,它就會出問題。以下 sed 呼叫將把 dos/windows 格式的文字轉換成可信賴的 unix 格式。

把linux/unix 文字移至 windows 系統,使用以下指令碼執行必需的格式轉換:在該指令碼中,規則表示式將與行的末尾匹配,'\r' 使 sed 在其之前插入一個回車。在換行之前插入回車。

sublime text 怎麼轉換windows linux文字檔案的格式

5樓:盤默

最近使用ubuntu linux發現,windows 下的文字到linux下可以正常的瀏覽,但是linux下的文字到windows下後發現凡是“回車”部分全是“黑塊”,經過一段時間的查詢搜尋發現了原因及解決辦法:

dos/windows和linux/unix的檔案換行回車格式不同,基於 dos/windows 的文字檔案在每一行末尾有一個 cr(回車)和 lf(換行),而 unix 文字只有一個換行。

1)、把dos/windows下的檔案移至linux/unix系統

雖然很多程式不在乎 dos/windows 格式的 cr/lf 文字檔案,但是有幾個程式卻在乎 -- 最著名的是 bash,只要一遇到回車,它就會出問題。以下 sed 呼叫將把 dos/windows 格式的文字轉換成可信賴的 unix 格式:

$ sed -e 's/.$//' mydos.txt > myunix.txt

該指令碼的工作原理很簡單:替代規則表示式與一行的最末字元匹配,而該字元恰好就是回車。我們用空字元替換它,從而將其從輸出中徹底刪除。

如果使用該指令碼並注意到已經刪除了輸出中每行的最末字元,那麼,您就指定了已經是 unix 格式的文字檔案。也就沒必要那樣做了!

2)、把linux/unix 文字移至 windows 系統,使用以下指令碼執行必需的格式轉換:

$ sed -e 's/$/\r/' myunix.txt > mydos.txt

在該指令碼中,'$' 規則表示式將與行的末尾匹配,而 '\r' 告訴 sed 在其之前插入一個回車。在換行之前插入回車,立即,每一行就以 cr/lf 結束。請注意,僅當使用 gnu sed 3.

02.80 或以後的版本時,才會用 cr 替換 '\r'。

另外還有個方法:

使用命令

unix2dos filename

dos2unix filename

互相轉換,具體朝哪個方向轉不用我詳細說了吧。

關於C語言文字檔案的問題,急

按照給的檔案內容,模擬了一下程式,沒問題的,能夠輸出 include include define bw bw define hdref hdref int main if memcmp item,hdref,sizeof hdref 0 輸出2個值 fclose fp return 0 下面是輸出...

如何把文字檔案中的空白刪除,如何刪除文字檔案中的空格和空行

ctrl h 把你要空的單位貼上在上面一欄,然後點執行就可以了 是要把選中的地方的 空格 去掉嗎?如何刪除文字檔案中的空格和空行 用word開啟檔案,然後按 ctrl h 查詢中輸入 p p 替換中輸入 p 點全部替換,多點幾次,直到提示找不到。然後另存為txt檔案 怎麼樣才能快速刪掉txt中的空白...

批量替換不同的文字檔案裡面的文字

放到word裡面 按ctrl f,選擇替換 然後就可以把要替換的字自己打上去就行了 1 對於內容相似的文字 先用 快速選擇 選中這些文字,然後滑鼠右鍵 特性 文字內容 統一改為相同的英文。2 對於內容完全的文字 可直接用選單 編輯 查詢 文字替換,進行修改。補充 快速選擇的使用方法如下 以選中文字 ...