如果我打开我在Windows中创建的文件,则所有行都以^M.
如何一次删除这些字符?
我在Windows上使用gVim.我的代码^M在行尾显示字符.我:set ff=dos以前没有用.^M现有行的字符仍然存在,但不会显示我输入的换行符.我已将模式切换为mac(显示^J字符)和unix(也显示^M字符)并返回dos.有没有人见过这个?
所以我正在改变代码
foo()
{
Run Code Online (Sandbox Code Playgroud)
至
foo() {
Run Code Online (Sandbox Code Playgroud)
而且我注意到搜索模式需要我搜索\n,但是当我尝试用\n我的^@角色替换它时,我不得不替换为\r.
我觉得很奇怪,我搜索\n并替换\r,任何想法为什么会这样?
作为参考我的解决方案是 :%s/\n\s*{/ {\r/g
我想将 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 换行符?),我该怎么做?
在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字符.
我有一个文件,其列由^ 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)
我上传了一个Windows文本文件,我发现有一堆^ M显示.我认为这是新行char,但我想知道为什么^ M显示在这种情况下显示?
我正在尝试使用
man ascii | vi -
Run Code Online (Sandbox Code Playgroud)
用vim检查ascii手册,
然后有一些奇怪的字符像'^ H'
怎么让它正常?
编辑:
我认为这是由于我的 vim 或终端的一些错误配置,因为我尝试了其他机器,并且它工作正常,任何人都可以帮助吗?