Bagaimana cara mengubah jeda baris dalam file teks antara format Windows dan Unix / Linux?
Saya memiliki lingkungan * nix, tetapi saya perlu mengimpor dan mengekspor data dengan jeda baris bergaya Windows. Saya pikir akan ada utilitas atau perintah standar untuk melakukan ini, tetapi sepertinya saya tidak dapat menemukannya.
dos2unix
adalah waterlan.home.xs4all.nl/dos2unix.html , dan bekerja pada Windows juga.dos2unix
/unix2dos
di Mac OS X menggunakan Homebrew . Dengan Homebrew diinstal, perintahnya adalahbrew install dos2unix
, yang menggunakan rumus ini .Salah satu opsi adalah menggunakan
unix2dos
(dandos2unix
untuk kembali) di baris perintah.Lain adalah dengan menggunakan editor teks:
Untuk vi:: set ff = dos untuk mengatur akhir baris menjadi akhiran baris dos.
Untuk emacs: Cx [ENTER] f dos [ENTER]
Untuk editor berbasis GUI favorit Anda (mis. Jedit) Saya sarankan memeriksa manual atau Google.
Terakhir jika Anda tidak ingin berurusan dengan editor teks dan lakukan saja menggunakan utilitas yang lebih umum dan semacamnya (atau jangan instal unix2dos):
tr -d '\r' < infile > outfile
untuk pergi dari Windows -> Unixawk 'sub("$", "\r")' unixfile.txt > winfile.txt
untuk pergi dari Unix -> Windows karenatr
tidak dapat pergi dari Unix ke Windows.sumber
ff
::e ++ff=unix
. Setidaknya masuk akal untukdos -> unix
konversi.Edit di Vim dan gunakan
set fileformat
perintah.MS-DOS / Windows (CR + LF istirahat) ke * nix (LF hanya istirahat)
* nix ke MS-DOS / Windows
sumber
hexdump -C
- juga mengonfirmasi ini tidak lengket - sudah diatur pervi
sesiInilah yang saya gunakan, mirip dengan Chealion, untuk mengubah ujung Windows ke Unix:
sumber
Melakukan ini dengan POSIX itu rumit:
POSIX Sed tidak mendukung
\r
atau\15
. Bahkan jika itu terjadi, opsi di tempat-i
bukanlah POSIXPOSIX Awk mendukung
\r
dan\15
, bagaimanapun,-i inplace
pilihannya bukan POSIXd2u dan dos2unix bukan utilitas POSIX , tetapi ex adalah
POSIX ex tidak mendukung
\r
,\15
,\n
atau\12
Untuk menghapus pengembalian carriage:
Untuk menambahkan carriage return:
sumber