修改windows檔案的換行符

2022-02-21 08:09:18 字數 1757 閱讀 8906

應用場景:

在辦公中,有可能存在,某些命令指令碼使用windows下的文字編輯器進行編寫

當放到測試環境的linux中時,執行報錯

需要使用的軟體:xxd hexdump  dos2unix

1、執行windows上編寫好的sh指令碼

[root@hlrgm ~]# bash test.sh

test.sh: line 2: $'\r': command not found

'f: invalid option -- '

try 'df --help' for more information.

test.sh: line 4: $'\r': command not found

's: invalid option -- '

try 'ls --help' for more information.

test.sh: line 6: $'\r': command not found

2、檢視sh指令碼

[root@hlrgm ~]# cat test.sh

#!/bin/bash

df -h

ls -l

3、檢視文字的二進位制

[root@hlrgm ~]# xxd test.sh 

0000000: 2321 2f62 696e 2f62 6173 680d 0a0d 0a64 #!/bin/bash....d

0000010: 6620 2d68 0d0a 0d0a 6c73 202d 6c0d 0a0d f -h....ls -l...

0000020: 0a .

4、檢視文字的十六進製制

[root@hlrgm ~]# hexdump test.sh

0000000 2123 622f 6e69 622f 7361 0d68 0d0a 640a

0000010 2066 682d 0a0d 0a0d 736c 2d20 0d6c 0d0a

0000020 000a

0000021

5、使用dos2unix修改文字

注意:dos2unix需要安裝後使用,預設系統未安裝

[root@hlrgm ~]# dos2unix test.sh

dos2unix: converting file test.sh to unix format ...

6、檢視修改後檔案的二進位制和十六進製制

# 二進位制

[root@hlrgm ~]# xxd test.sh

0000000: 2321 2f62 696e 2f62 6173 680a 0a64 6620 #!/bin/bash..df

0000010: 2d68 0a0a 6c73 202d 6c0a 0a -h..ls -l..

# 十六進製制

0000000 2123 622f 6e69 622f 7361 0a68 640a 2066

0000010 682d 0a0a 736c 2d20 0a6c 000a

000001b

7、對比

windows:二進位制下換行符號:0d0a

linxu:二進位制下換行符號:0a

Linux換行符和Windows換行符的區別與轉換

windows為乙個回車 r cr或 m 和乙個換行 n nl或lf 括號內是其它顯示方法 linux為乙個換行 n mac為乙個回車 r 檢視檔案是否含有windows換行符 windows notepad 檢視 顯示所有符號 linux file test.txt test.txt ascii ...

檔案換行符

檔案換行符 dos和windows採用回車 換行 cr lf 而unix linux採用換行符lf,蘋果機 mac os系統 則採用回車符cr.cr用符號 r 表示,十進位制ascii 是13,十六進製制 為0x0d lf使用 n 符號表示,ascii 是10,十六制為0x0a.所以windows平...

Linux下轉換Windows換行符

linux和windows和換行符不一樣。windows下是crlf r n或0d0a linux下是lf n或0a 在linux下有時會遇到從windows過來的文字檔案,這些檔案帶了windows換行符,linux下進行指令碼處理時有可能會出一些莫名其妙的錯誤。因此需要將這些檔案轉換為linux...