国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Windows和Linux的換行符CRLF/LF(\r\n,\n)簡介

這篇具有很好參考價(jià)值的文章主要介紹了Windows和Linux的換行符CRLF/LF(\r\n,\n)簡介。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

問題:

有的時(shí)候, 我們把一個(gè)在windows上修改過的文件拿到linux上用vim打開之后,每行末尾會(huì)出現(xiàn)多余的字符 "^M",這是怎么回事呢?

linux 換行符,linux,linux,windows,bash

1.CR/LF介紹

CR是Carriage-Return的縮寫,即回車;

LF是Line-Feed的縮寫,即換行。

CR和LF是在計(jì)算機(jī)終端還是電傳打印機(jī)的時(shí)候遺留下來的東西。電傳打字機(jī)就像普通打字機(jī)一樣工作。

在每一行的末端,CR命令讓打印頭回到左邊。LF命令讓紙前進(jìn)一行。

雖然使用卷紙的終端時(shí)代已經(jīng)過去了,但是,CR和LF命令依然存在,許多應(yīng)用程序和網(wǎng)絡(luò)協(xié)議仍使用這些命令作為分隔符。

Linux(unix) 和 mac 默認(rèn)使用 "\n" 作為換行符;

Windows 默認(rèn)使用 "\r\n" 作為換行符;

2.Unix(Linux)的換行符

Linux 下?lián)Q行符是 "\n"。

linux 換行符,linux,linux,windows,bash

"\n" 在 ACSII表中 對(duì)應(yīng) LF , ACSII值為 10 ,即0x0a (16進(jìn)制)?

?

3.windows下?lián)Q行符

windows 下?lián)Q行符是 "\r\n"。

linux 換行符,linux,linux,windows,bash

"\r" 在ACSII表中對(duì)應(yīng) "CR", ACSII值為 13 ,即0x0d (16進(jìn)制)? 。

"\r" 在vim中被解釋為 "^M" 。

4. unix/windows格式換行符轉(zhuǎn)換

4.1 在linux上可以使用以下工具進(jìn)行轉(zhuǎn)換

  1. dos2unix : 將windows風(fēng)格換行符轉(zhuǎn)換為unix風(fēng)格換行符
  2. unix2dos:? 將unix風(fēng)格換行符轉(zhuǎn)換為windows風(fēng)格換行符

linux 換行符,linux,linux,windows,bash

4.2 在windows上CRLF和LF的轉(zhuǎn)換

4.2.1 使用dos2unix/unix2dos 轉(zhuǎn)換

下載windows版本的 dos2unix/unix2dos,

dos2unix - Browse /dos2unix/7.5.1 at SourceForge.net

使用方法參考dos2unix工具中

dos2unix-7.5.1-win64-nls/share/doc/dos2unix-7.5.1/dos2unix.htm

example 和 RECURSIVE CONVERSION 章節(jié)

(見附錄2)

4.2.2 在windows上常用的代碼編輯器一般都支持CRLF和LF的轉(zhuǎn)換

比如說 VsCode,? 在右下角可以選擇 LF 或者CRLF;

其他編輯器的操作大同小異。

linux 換行符,linux,linux,windows,bash

需要默認(rèn)設(shè)置的話, 在設(shè)置里修改

linux 換行符,linux,linux,windows,bash

5. git中關(guān)于換行符的一些配置

5.1 core.autocrlf

core.autocrlf?選項(xiàng)有三個(gè)可選值:

  • true : 提交時(shí)改成LF,檢出時(shí)改成CRLF
  • false (默認(rèn)值): 提交時(shí)是什么就是什么,不改換行符,檢出時(shí)也不改
  • input:? 提交時(shí)改成LF,檢出時(shí)不改

5.2 core.eol

core.eol?選項(xiàng)用于指定文件的行尾樣式

  • lf :使用 LF 作為行尾樣式。
  • crlf:使用 CRLF 作為行尾樣式。
  • native (默認(rèn)值):使用操作系統(tǒng)的默認(rèn)行尾樣式。

5.3 core.safecrlf

core.safecrlf?選項(xiàng)用于防止混合換行符的錯(cuò)誤。它有三個(gè)可選值:

  • false: 關(guān)閉檢查,允許混合換行符的錯(cuò)誤。
  • warn (默認(rèn)值):開啟檢查,并在發(fā)現(xiàn)混合換行符的錯(cuò)誤時(shí)打印警告信息。
  • true:開啟檢查,并在發(fā)現(xiàn)混合換行符的錯(cuò)誤時(shí)打印錯(cuò)誤信息并拒絕提交。

5.4 git配置建議

一些查看git配置的命令

# 查看 git config 配置
git config -l

# 查看 git config 配置具體位置
git config --list --show-origin

# 全局配置
git config --global core.autocrlf true

5.4.1

開發(fā)環(huán)境:windows

代碼編譯/運(yùn)行環(huán)境: windows

建議配置 : core.autocrlf = true

5.4.2

開發(fā)環(huán)境:windows

代碼編譯/運(yùn)行環(huán)境: Linux / Mac

建議配置 : core.autocrlf = input

5.4.3

開發(fā)環(huán)境:Linux / Mac

代碼編譯/運(yùn)行環(huán)境: Linux / Mac

建議配置 : core.autocrlf = false (保持默認(rèn)配置)

5.4.4

開發(fā)環(huán)境:Linux / Mac

代碼編譯/運(yùn)行環(huán)境: Windows

建議配置 : core.autocrlf = true

個(gè)人配置是保持默認(rèn)配置,

個(gè)人工作情況是:

99%概率在linux提交,運(yùn)行在linux的代碼;

有極小概率可能在linux上提交bat腳本;

?因此保持默認(rèn)配置。

針對(duì)在linux環(huán)境提交的bat腳本,手動(dòng)轉(zhuǎn)換為 CRLF格式。

附錄1. ASCII 碼表

linux 換行符,linux,linux,windows,bash

附錄2 . dos2unix 使用方法介紹

EXAMPLES
    Read input from 'stdin' and write output to 'stdout':

        dos2unix < a.txt
        cat a.txt | dos2unix

    Convert and replace a.txt. Convert and replace b.txt:

        dos2unix a.txt b.txt
        dos2unix -o a.txt b.txt

    Convert and replace a.txt in ascii conversion mode:

        dos2unix a.txt

    Convert and replace a.txt in ascii conversion mode, convert and replace
    b.txt in 7bit conversion mode:

        dos2unix a.txt -c 7bit b.txt
        dos2unix -c ascii a.txt -c 7bit b.txt
        dos2unix -ascii a.txt -7 b.txt

    Convert a.txt from Mac to Unix format:

        dos2unix -c mac a.txt
        mac2unix a.txt

    Convert a.txt from Unix to Mac format:

        unix2dos -c mac a.txt
        unix2mac a.txt

    Convert and replace a.txt while keeping original date stamp:

        dos2unix -k a.txt
        dos2unix -k -o a.txt

    Convert a.txt and write to e.txt:

        dos2unix -n a.txt e.txt

    Convert a.txt and write to e.txt, keep date stamp of e.txt same as
    a.txt:

        dos2unix -k -n a.txt e.txt

    Convert and replace a.txt, convert b.txt and write to e.txt:

        dos2unix a.txt -n b.txt e.txt
        dos2unix -o a.txt -n b.txt e.txt

    Convert c.txt and write to e.txt, convert and replace a.txt, convert and
    replace b.txt, convert d.txt and write to f.txt:

        dos2unix -n c.txt e.txt -o a.txt b.txt -n d.txt f.txt

RECURSIVE CONVERSION
    In a Unix shell the find(1) and xargs(1) commands can be used to run
    dos2unix recursively over all text files in a directory tree. For
    instance to convert all .txt files in the directory tree under the
    current directory type:

        find . -name '*.txt' -print0 |xargs -0 dos2unix

    The find(1) option "-print0" and corresponding xargs(1) option -0 are
    needed when there are files with spaces or quotes in the name. Otherwise
    these options can be omitted. Another option is to use find(1) with the
    "-exec" option:

        find . -name '*.txt' -exec dos2unix {} \;

    In a Windows Command Prompt the following command can be used:

        for /R %G in (*.txt) do dos2unix "%G"

    PowerShell users can use the following command in Windows PowerShell:

        get-childitem -path . -filter '*.txt' -recurse | foreach-object {dos2unix $_.Fullname}

參考資料:

CRLF_百度百科

百度百科-CRLF

【git系列4/4】如何設(shè)置core.autocrlf | core.safecrlf (配置值的含義及最佳實(shí)踐)

【git系列4/4】如何設(shè)置core.autocrlf | core.safecrlf (配置值的含義及最佳實(shí)踐)-CSDN博客

Git 自動(dòng)換行符 (autocrlf) 輸入是將換行符從 LF 轉(zhuǎn)換為 CRLF 嗎

Git 自動(dòng)換行符 (autocrlf) 輸入是將換行符從 LF 轉(zhuǎn)換為 CRLF 嗎|極客筆記

Shell腳本中^M的問題和解決方案

Shell腳本中^M的問題和解決方案-CSDN博客

Sourceforge-dos2unix

https://sourceforge.net/projects/dos2unix文章來源地址http://www.zghlxwxcb.cn/news/detail-775211.html

到了這里,關(guān)于Windows和Linux的換行符CRLF/LF(\r\n,\n)簡介的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一文搞清UNIX/Linux與Windows文件換行符格式差異

    一文搞清UNIX/Linux與Windows文件換行符格式差異

    當(dāng)一個(gè)文件在Windows和Linux上交替操作后,經(jīng)常遇到一些莫名其妙的問題,如shell腳本無法執(zhí)行,找不到shell腳本等問題,本文j謹(jǐn)就這一問題做一總結(jié),供各位參考; 本博客地址,https://blog.csdn.net/qxhgd,歡迎各位關(guān)注,轉(zhuǎn)發(fā)請(qǐng)注明出處。 換行符是行尾 (EOL),是一個(gè)特殊的字

    2024年02月15日
    瀏覽(23)
  • 【bug記錄】-Linux與Windows中的文件換行符不同導(dǎo)致的格式問題

    當(dāng)你從Windows移動(dòng)文件到Linux系統(tǒng)時(shí),可能會(huì)遇到文件格式問題。這通常涉及到文本文件的換行符(line endings)格式。 在Windows中,換行符是\\\"rn\\\"(Carriage Return + Line Feed) 而在Linux中,換行符是\\\"n\\\"(Line Feed)。 解決這個(gè)問題的方法之一是使用工具來轉(zhuǎn)換文本文件的換行符格式。

    2024年02月04日
    瀏覽(25)
  • chatgpt賦能python:Python去除換行符\n的方法

    chatgpt賦能python:Python去除換行符\n的方法

    如果您在使用Python處理文本數(shù)據(jù)時(shí),經(jīng)常遇到換行符n的問題,那么本文將為您介紹幾種Python去除換行符n的方法,并為您提供實(shí)際案例。這些方法包括使用replace、strip、split和正則表達(dá)式等,讓您可以更加靈活地處理文本數(shù)據(jù)。 使用replace方法去除n 介紹 Python中的replace方法可

    2024年02月05日
    瀏覽(20)
  • 【vue】vue 里面使用 v-html 插入的文本帶有換行符‘\n‘不換行

    【vue】vue 里面使用 v-html 插入的文本帶有換行符‘\n‘不換行

    最近開發(fā)vue2 項(xiàng)目 ,接口返回的是類似于這樣的數(shù)據(jù): 我是第一行的哦n我是第二行的哦 我是直接這樣渲染的, 但結(jié)果卻是不如意,變成了下面這樣 1.在使用 v-html 時(shí)添加樣式,white-space:pre-wrap ,讓瀏覽器保留空白和換行符。 2、用 pre 標(biāo)簽包裹 被包圍在 pre 標(biāo)簽中的文本通常

    2024年02月14日
    瀏覽(24)
  • 一張表格講明白white-space屬性。html如何識(shí)別\n\r,讓這些特殊換行符換行。

    大多數(shù)標(biāo)簽在展示文本內(nèi)容的時(shí)候都會(huì)默認(rèn)把文本中的空白和換行符去掉,這的確大大的使得文本的排版更加美觀了,也怎加了區(qū)域的利用率,可是就有一些需求是需要原原本本的展示出原汁原味的文本格式。那該如何展示出文本的內(nèi)在格式呢?無外乎把不該去掉的空格展示

    2024年02月14日
    瀏覽(20)
  • 前端處理后端返回的數(shù)據(jù)中有\n\n字樣的換行符標(biāo)識(shí)

    前端處理后端返回的數(shù)據(jù)中有\n\n字樣的換行符標(biāo)識(shí)

    后端返回的數(shù)據(jù): 上面圈著的部分就是n,前端需要將數(shù)據(jù)進(jìn)行換行,對(duì)于這類型的數(shù)據(jù),在前端頁面是需要進(jìn)行稍微處理才能正常顯示。如果沒有經(jīng)過處理,那么內(nèi)容是不會(huì)在有換行符的位置進(jìn)行換行顯示的 解決辦法1: 使用css屬性: pre-wrap:連續(xù)的空白符會(huì)被保留。在遇到

    2024年02月07日
    瀏覽(28)
  • windows中的換行符

    用連續(xù)兩個(gè)換行符來分隔文本 Regex reg = new Regex(@\\\"nn\\\"); string[] s = reg.Split(this.richtextbox1.text); 結(jié)果正常 Regex reg = new Regex(@\\\"nn\\\"); string[] s = reg.Split(System.IO.File.ReadAllText(txtfilepath)); 沒有達(dá)到分割效果 所以穩(wěn)定起見改成Regex reg = new Regex(@\\\"(nn)|(rnrn)\\\");就OK了

    2023年04月09日
    瀏覽(28)
  • C語言中輸入函數(shù)scanf在使用中不能加上換行符號(hào)\n

    C語言中輸入函數(shù)scanf在使用中不能加上換行符號(hào)\n

    (1)是一種輸入函數(shù)。 (2)以vs編譯器為例,vs編譯器不提供該函數(shù)這樣的寫法,在使用中,需要先聲明定義。在主函數(shù)前定義,如下: #define _CRT_SECURE_NO_WARNINGS 1 下面以一個(gè)題目舉例:? ? ? 題目為? 計(jì)算n的階乘 (1)錯(cuò)誤的示范: (2)錯(cuò)誤分析 ?要輸入2次,為什么? (

    2024年02月06日
    瀏覽(20)
  • uni-app開發(fā)微信小程序數(shù)據(jù) \n 換行符失效問題

    uni-app開發(fā)微信小程序數(shù)據(jù) \n 換行符失效問題

    前言 使用uni-app開發(fā)微信小程序時(shí),使用text顯示字符串(字符串帶n),需要在n處直接換行。 1、本地字符串,可以直接換行顯示。 2、后臺(tái)返回字符串,直接換行失效。原因:渲染時(shí) n 直接被當(dāng)成字符串處理了,根本不識(shí)別。 效果圖 ? ??? 實(shí)現(xiàn) 1、使用replace()方法,字符

    2024年02月15日
    瀏覽(26)
  • Python 三種讀文件方法read(), readline(), readlines()及去掉換行符\n

    首先, 讓我們看下數(shù)據(jù) demo.txt , 就兩行數(shù)據(jù). 這種方法直接將所有的數(shù)據(jù)一次性讀取出來, data的數(shù)據(jù)類型是一個(gè)字符串. 該方法讀取的是一行內(nèi)容, 然后是帶換行符的, 所有會(huì)有空行, 后續(xù)會(huì)說明如何去掉換行符”n”. 這種方法返回的是一個(gè)列表, 注意換行符是包含在字符串的內(nèi)

    2023年04月14日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包