Maison base de données tutoriel mysql Unix/Dos 文本文件格式_MySQL

Unix/Dos 文本文件格式_MySQL

Jun 01, 2016 pm 01:07 PM

折腾了一两个小时,有一批文本文件总是没办法导进数据库里面,用notepad++另存后则ok。


后来发现这批文本文件都是UNIX 格式。没注意检查文件格式。。。。。


在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行。


------------------------------------------------------------------------------------------

Linux与Windows文本格式之间的转化


原理:

在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误

因为装了双系统,所以有时一些文件在两个系统之间共享,不过之前一直没有很在意这个问题.在windows系统中用Word或者Notepad++打开文件,在linux系统中一直用的是vim编辑器,不过昨天在命令行界面就只能用vi了..郁闷!! 中文支持都是个头痛的问题,在windows编辑过的文本文件每行末尾都会以^M以结尾...

----------------------------------------------------

Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"/r/n"转化成"/n",unix2dos把"/n"转化成"/r/n"。

Ubuntu 7.10中默认没有dos2unix或者unix2dos

提示要安装tofrodos这个包( Converts DOS  Unix text files, alias tofromdos )

$sudo apt-get install tofrodos

dos2unix --> 将windows文本文件转化为linux格式

unix2dos --> 将linux文本文件转化为windows格式

  

用法:

man dos2unix

man unix2dos

----------------------------------------------------

使用linux系统中自带的流文本编辑器sed

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'。

----------------------------------------------------

据说还可以用vim来处理(未测试):

在 Vim 的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中的所有 ^M 字符

命令分析:

%指匹配整个文件, s是置换的意思, ^M 注意要用Ctrl + V和Ctrl + M来输入,M后面的$代表匹配行尾的内容(用空格替换), 最后的g则表示每行中匹配到的内容都要置换

 

----------------------------------------------------

使用tr 命令实现:

1. 使用类似于这样的表示法: tr abc xyz  ,它表示用字母“x”去替换出现的所有字母“a”,用字母“y”去替换所有字母“b”,用字母“z”去替换所有字母“c”。

2. tr a-z A-Z 将用对应的大写字母来替换所有的小写字母(例如,它将“no smoking”转换成“NO SMOKING”)。

3. 当您在 vi 编辑器中想强调正在编辑的文本的某一部分时,使用这一特殊技巧非常方便。只要按一下 Escape 键,然后按 : 键,再输入 2,4!tr 'a-z' 'A-Z' ,最后按一下 Return 键。现在,从第 2 行到第 4 行的字母就都转换成了大写字母。

4. 另外,当有人给您发送了一个在 Mac OS 或 DOS/Windows 机器上创建的文本文件时,您会发现 tr 非常有用。如果没有将文件保存为使用 UNIX 换行符来表示行结束这种格式,则需要将这样的文件转换成本机 UNIX 格式,否则一些命令实用程序不会正确地处理这些文件。Mac OS 的行尾以回车字符结束,许多文本处理工具将这样的文件作为一行来处理。为了纠正这个问题,可以用下列技巧:

   * Mac -> UNIX: tr '/r' '/n'  unixfile

   * UNIX -> Mac: tr '/n' '/r'  macfile



 

----------------------------------------------------


Tips:
回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。
          在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

         于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

        后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

        Unix系统里,每行结尾只有“”,即"/n";Windows系统里面,每行结尾是“”,即“/n/r”;Mac系统里,每行结尾是“”,即"/n";。一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。 


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE? Mar 19, 2025 pm 03:51 PM

L'article discute de l'utilisation de l'instruction ALTER TABLE de MySQL pour modifier les tables, notamment en ajoutant / abandon les colonnes, en renommant des tables / colonnes et en modifiant les types de données de colonne.

Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Comment configurer le cryptage SSL / TLS pour les connexions MySQL? Mar 18, 2025 pm 12:01 PM

L'article discute de la configuration du cryptage SSL / TLS pour MySQL, y compris la génération et la vérification de certificat. Le problème principal est d'utiliser les implications de sécurité des certificats auto-signés. [Compte de caractère: 159]

Comment gérez-vous les grands ensembles de données dans MySQL? Comment gérez-vous les grands ensembles de données dans MySQL? Mar 21, 2025 pm 12:15 PM

L'article traite des stratégies pour gérer de grands ensembles de données dans MySQL, y compris le partitionnement, la rupture, l'indexation et l'optimisation des requêtes.

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)? Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

L'article traite des outils de GUI MySQL populaires comme MySQL Workbench et PhpMyAdmin, en comparant leurs fonctionnalités et leur pertinence pour les débutants et les utilisateurs avancés. [159 caractères]

Comment déposez-vous une table dans MySQL à l'aide de l'instruction TABLE DROP? Comment déposez-vous une table dans MySQL à l'aide de l'instruction TABLE DROP? Mar 19, 2025 pm 03:52 PM

L'article discute de la suppression des tables dans MySQL en utilisant l'instruction TABLE DROP, mettant l'accent sur les précautions et les risques. Il souligne que l'action est irréversible sans sauvegardes, détaillant les méthodes de récupération et les risques potentiels de l'environnement de production.

Comment représentez-vous des relations en utilisant des clés étrangères? Comment représentez-vous des relations en utilisant des clés étrangères? Mar 19, 2025 pm 03:48 PM

L'article discute de l'utilisation de clés étrangères pour représenter les relations dans les bases de données, en se concentrant sur les meilleures pratiques, l'intégrité des données et les pièges communs à éviter.

Comment créez-vous des index sur les colonnes JSON? Comment créez-vous des index sur les colonnes JSON? Mar 21, 2025 pm 12:13 PM

L'article discute de la création d'index sur les colonnes JSON dans diverses bases de données comme PostgreSQL, MySQL et MongoDB pour améliorer les performances de la requête. Il explique la syntaxe et les avantages de l'indexation des chemins JSON spécifiques et répertorie les systèmes de base de données pris en charge.

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)? Mar 18, 2025 pm 12:00 PM

L'article discute de la sécurisation MySQL contre l'injection SQL et les attaques brutales à l'aide de déclarations préparées, de validation des entrées et de politiques de mot de passe solides (159 caractères)

See all articles