我正在將我的代碼從UNIX遷移到LINUX,我知道unix2dos命令在SUSE 11.0中不可用。請讓我知道如果Unix到Linux的遷移 - unix2dos
alias unix2dos='recode lat1..ibmpc'
將具有與unix2dos相同的效果?
我正在將我的代碼從UNIX遷移到LINUX,我知道unix2dos命令在SUSE 11.0中不可用。請讓我知道如果Unix到Linux的遷移 - unix2dos
alias unix2dos='recode lat1..ibmpc'
將具有與unix2dos相同的效果?
我不知道重新編碼,但sed -i 's/$/\r/'
會做與unix2dos
相同的事情。
其實我有很大的文件和sed/perl可以降低性能。 –
我無法想象任何* nix工具比'sed'更快完成這個工作。在一個大文件上給它一個鏡頭,看看速度是多少。 –
@SachinChourasiya它[出現](http://www.informatik.uni-hamburg.de/RZ/software/gnu/utilities/recode_3.html#SEC8)'recode'用於在字符編碼之間切換。這幾乎*保證*比'sed'版本慢,它只是在每行上添加字符而不是將整個文件重新映射到新的編碼。 –
使用recode
似乎有風險,它用於轉換字符集,而不僅僅是改變換行符。我沒有使用過recode
,但是如果它們被編碼在例如文件中,我恐怕你可能會破壞你的文件。 UTF-8而不是Latin1。
我不知道在SUSE中找到了哪些軟件包,但可能有unix2dos
的替代方法之一,如todos
(在Debian的包中找到tofromdos
)。
使用sed
作爲其他建議應該很好。如果您真的擔心性能,可以將sed
的性能與awk '{print $0 "\r"}'
進行比較 - 我無法確定哪種情況會在您的情況下更快,但是對您的文件樣本進行測量並不會造成什麼影響。
裝入文件(S)到VIM,然後
:set ff=dos
- 更改到DOS行結束(CRLF)
:set ff=unix
- 更改到Unix行結尾(LF)
在vim中加載大文件可能需要* loooong *時間來渲染。另外,你不能直接從命令行執行它。 –
@TimPote:從vim命令行在這裏可以正常工作。我沒有直接從調用命令行(bash,cmd.exe等)進行測試。花幾秒鐘在vim中加載一個20兆字節的文件並將其轉換。對我來說足夠了。 – JimR
爲什麼不映射unix2dos'上的unix框上的行結尾,只能將映射的文件轉移到Linux上? –
因爲我的代碼在Linux上運行時,可能沒有UNIX。 –
爲什麼要從unix遷移到linux轉換行尾的原因?他們使用相同的約定。 – mata