相关疑难解决方法(0)

在DOS中将DOS行结尾转换为Linux行结尾

如果我打开我在Windows中创建的文件,则所有行都以^M.
如何一次删除这些字符?

linux vim dos2unix editor file

688
推荐指数
16
解决办法
52万
查看次数

474
推荐指数
19
解决办法
36万
查看次数

即使文件模式明确是DOS,gVim也会显示回车符(^ M)

我在Windows上使用gVim.我的代码^M在行尾显示字符.我:set ff=dos以前没有用.^M现有行的字符仍然存在,但不会显示我输入的换行符.我已将模式切换为mac(显示^J字符)和unix(也显示^M字符)并返回dos.有没有人见过这个?

vim line-endings carriage-return

77
推荐指数
5
解决办法
6万
查看次数

Atom文本编辑器将"^ M"添加到空行

Atom文本编辑器将此符号添加到每个空行.

知道什么和为什么?

在此输入图像描述

git atom-editor

15
推荐指数
2
解决办法
6843
查看次数

为什么Windows上的Vim使用\n进行搜索?

所以我正在改变代码

foo()
{
Run Code Online (Sandbox Code Playgroud)

foo() {
Run Code Online (Sandbox Code Playgroud)

而且我注意到搜索模式需要我搜索\n,但是当我尝试用\n我的^@角色替换它时,我不得不替换为\r.

我觉得很奇怪,我搜索\n并替换\r,任何想法为什么会这样?

作为参考我的解决方案是 :%s/\n\s*{/ {\r/g

windows vim newline

9
推荐指数
1
解决办法
871
查看次数

python将多行转换为单行

我想将 Python 多行字符串转换为单行。如果我在 Vim 中打开字符串,我可以在每一行的开头看到 ^M 。如何处理字符串以使其全部在一行中,每行之间有制表符分隔。Vim 中的示例如下所示:

  Serialnumber
 ^MName           Rick
 ^MAddress           902, A.street, Elsewhere
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

Serialnumber \t Name \t Rick \t Address \t 902, A.street,......
Run Code Online (Sandbox Code Playgroud)

每个字符串都在一行中。我试过

   somestring.replace(r'\r','\t')
Run Code Online (Sandbox Code Playgroud)

但它不起作用。另外,一旦字符串在一行中,如果我想在字符串末尾添加换行符(UNIX 换行符?),我该怎么做?

python string

6
推荐指数
3
解决办法
4万
查看次数

为什么"脚本"命令生成^ [和^ M个字符以及如何使用vim搜索和替换它们?

在linux上,使用bash shell,当我使用script命令时,生成的文件称为typescript.当我用vim打开该文件时,每行包含^ M字符,并且几行(由于我的彩色命令提示符)包含一个字符^ [.我想用什么都不替换这些字符,有效地从生成的脚本中删除它们.

首先,我想:%s/^[//gc,:%s/\^[//gc,:%s/\^\[//gc,和其他几个变种.它们都没有匹配^ [字符,因此搜索/替换不起作用.

我也尝试了具有相同结果的^ M字符的所有这些变体.经过一些谷歌搜索后,我发现^ M字符实际上是回车符"\ r".所以然后我尝试了:%s/\\r//gc,这适用于^ M角色!

我用谷歌搜索了一下,试图找出^ [字符是什么,但没有发现任何帮助.

2个问题:

1)什么是^ [字符,在vim中使用什么正确的正则表达式来搜索和替换它?

2)为什么在Linux上使用script命令时,生成的脚本会在行尾生成^ M?这让我觉得linux脚本命令正在生成CRLF eol字符,而不仅仅是LF eol字符.

regex linux vim

6
推荐指数
2
解决办法
2075
查看次数

HIVE分隔符\n ^ M问题

我有一个文件,其列由^ A分隔,行由'\n'换行符号.

我首先将它上传到HDFS,然后使用如下命令在Hive中创建表:

CREATE EXTERNAL TABLE 
IF NOT EXISTS 
html_sample 
( ts string, 
  url string, 
  html string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\001' 
LINES TERMINATED BY '\n' 
LOCATION '/tmp/directoryname/';
Run Code Online (Sandbox Code Playgroud)

但是,当我为该表执行select语句时.结果是一团糟.

该表如下所示:

ts              url                    html
10082013        http://url.com/01      <doctype>.....style="padding-top: 10px;
text-align...   NULL                   NULL 
text-align...   NULL                   NULL
text-align...   NULL                   NULL
10092013        http://url.com/02      <doctype>.....style="padding-top: 10px;
text-align...   NULL                   NULL 
text-align...   NULL                   NULL
text-align...   NULL                   NULL
Run Code Online (Sandbox Code Playgroud)

然后我回到文本文件,发现文件中存在几个^ M字符,这使得HIVE将^ M视为新行字符.

当我第一次创建文件时,我故意从html中删除所有新行字符,以保证每条记录都是一行.但是,我只是无法理解HIVE如何将^ M视为换行符.如何在不修改文件的情况下解决这个问题.

(我知道有可能在VI或sed中进行全局替换......但它对我来说没有多大意义,HIVE如何将^ M视为\n)

vi hadoop hive newline sed

4
推荐指数
1
解决办法
7345
查看次数

为什么\ r \n在vi中显示为^ M?

我上传了一个Windows文本文件,我发现有一堆^ M显示.我认为这是新行char,但我想知道为什么^ M显示在这种情况下显示?

vi vim

3
推荐指数
1
解决办法
583
查看次数

我使用vim查看手册页,有一些奇怪的字符,如何使它正常?

我正在尝试使用

man ascii | vi -
Run Code Online (Sandbox Code Playgroud)

用vim检查ascii手册,
然后有一些奇怪的字符像'^ H'

vim 中的奇怪字符

怎么让它正常?

编辑:

我认为这是由于我的 vim 或终端的一些错误配置,因为我尝试了其他机器,并且它工作正常,任何人都可以帮助吗?

vi vim bash shell terminal

3
推荐指数
1
解决办法
261
查看次数