精华内容
下载资源
问答
  • python脚本在linux运行报错 每最后换行符出现%0D 问题截图 ... 经过查询得知,这是linux下对windows的换行符的处理,把windows下的"\n”,读成了“%0D”。 解决办法 安装dos2unix,使用dos2unix转化...

    python脚本在linux运行报错 每一句最后换行符出现%0D使用dos2unix转化

    问题截图

    在这里插入图片描述

    问题描述

    博主在运行某python脚本时发现在windows下完美运行,在linux下却无端报错,对比报错,发现每一行都在原有基础上多了一个“%0D”。 经过查询得知,这是linux下对windows的换行符的处理,把windows下的"\n”,读成了“%0D”。

    解决办法

    安装dos2unix,使用dos2unix转化一下脚本即可。

    1. 安装dos2unix
      在终端输入:
    sudo apt install -y dos2unix # linux系统
    yum install -y dos2unix  # centos系统
    

    在这里插入图片描述

    2.转化脚本
    在脚本所在目录的终端输入: dos2unix 脚本文件名

    dos2unix 文件名.sh 
    

    在这里插入图片描述
    3. 问题解决
    可以成功运行文件了
    —————————————————————————————————————————
    如果我的文章能帮你节约20秒,就请你为我的文章点个赞吧!

    展开全文
  • windows与linux换行符

    2017-05-14 17:57:00
    linux上写脚本,利用vim进行脚本编写,然后下载下来在nodepad++上面打开,在nodepad上面新建了个文件将原来文件内容复制过去,保存后下载复制文件在linux上面进行运行,发现运行不通过,凡是在空格都会...

    我一次linux上写的脚本,利用vim进行脚本编写,然后下载下来在nodepad++上面打开,在nodepad上面新建了一个文件将原来文件内容复制过去,保存后下载复制文件在linux上面进行运行,发现运行不通过,凡是在空格行都会显示命令不存在,最后发现是nodepad++上面文件的换行是\r\n,将\r字符替换为空字符就可以运行了,后来上网查找才知道,一般文本文件的换行都是\r\n。

    在linux vi下可以设置文件的换行符:

    可以用filetype设定,如dos(\r\n)、unix(\n)等
    :set filetype默认是\n,但如果打开的文件全用\r\n,也能识别。

     

    ^M 其实就是 \r ,也就是说这个文件所使用的回车是 mac 中的。也就是 apple公司生产的操作系统内默认的换行符。
    在 windows中默认是 \r\n
    在 unix/linux 中默认是 \n
    只需要在vi/vim 中输入命令:%s/\r//g或者:%s/[ctrl-v][ctrl-m]//g ====== :%s/^M//g
    效果是一样的,注意这里的 ctrl-v 和 ctrl-m 是你的按键,不是直接打字母上去,所以显示出来的是:%s/^M//g

    转载于:https://www.cnblogs.com/moss-yang/p/6853169.html

    展开全文
  • (一)  最近在学习shell编程,可是...之后用vi编辑器打开文件,发觉每一行的最后有浅蓝色的字符'^M'。才知道了问题所在  其实并没什么奇怪的,出现这种错误的原因是因为Linux和Windows文本文件的行结束标志不...
     (一)

      最近在学习shell编程,可是在《Linux程序设计》指定的网站上下载了源码,使用的时候却一直出问题。提示:”bash: ./here1:/bin/sh^M:损坏的解释器: 没有该文件或目录“。之后用vi编辑器打开文件,发觉每一行的最后有浅蓝色的字符'^M'。才知道了问题所在

      其实并没什么奇怪的,出现这种错误的原因是因为Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用"\n"(0a)表示回车换行,而Windows用"\r\n"(0d 0a)表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"\r\n"转化成"\n",unixtodos把"\n"转化成"\r\n"。

      命令dos2unix和unix2dos的使用非常简单,格式为:dos2unix filename

      如果想更多的了解这两个命令,可以查看手册:

      man dos2unix

      它会告诉你dos2unix的高级用法

      (二)

      Ubuntu下默认没有安装dos2unix工具,而且也没有一个叫这个名字的工具(我在solaris里用过dos2unix,不知道为啥Ubuntu没有)。但是有一个替代工具——tofrodos , 下面就说一下它的安装和使用。

      当然还是apt安装啦。

      (1)安装tofrodos

      sudo apt-get install tofrodos

      实际上它安装了两个工具:todos(相当于unix2dos),和fromdos(相当于dos2unix)

      安装完即可,现在你已经可以进行文本格式的转换啦。

      比如: todos Hello.txt (即unix2dos Hello.txt)

      fromdos Hello.txt (即dos2unix Hello.txt)

      (2)做一些优化

      由于习惯了unix2dos和dos2unix的命令,可以把上面安装的两个工具链接成unix2dos 和dos2unix,或者仅仅是起个别名,并放在启动脚本里。

      步骤:

    以下是代码片段:
    ln -s /usr/bin/todos /usr/bin/unix2dos
      ln -s /usr/bin/fromdos /usr/bin/dos2unix


      或者在 ~/.bashrc里起个别名

      vi ~/.bashrc

      添加 alias unix2dos=todos alias dos2unix=fromdos

      (三)

      另外如果要在目录中大量替换, 可以使用find + xargs

      比如:

      find ./model -name *.sh | xargs fromdos
    展开全文
  • Linux下文件格式及换行符问题

    千次阅读 2019-12-04 11:23:22
    1. 场景描述: 在windows 下写好文件 f23.txt,上传到Linux环境中运行时候结果总出问题。而相同内容Linux文件 f,txt 运行则OK。 ...结果显示在windows写好文件的最后一行没有...

    1. 场景描述:

    在windows 下写好的文件 f23.txt,上传到Linux环境中运行的时候结果总出问题。而相同内容的在Linux中的文件 f,txt 运行则OK。

    后面使用cat输出时,发现格式问题。

    $ cat f23.txt
    0 1 1
    1 2 2
    0 2 3$ cat f.txt
    0 1 1
    1 2 2
    0 2 3
    $ 
    

    结果显示在windows写好的文件的最后一行没有换行符,而Linux的文件有换行。

    2. 使用vim 命令查看:

    使用vim 分别打开文件,在命令行模式下,输入:set list 显示换行。

    显示的两个文件内容一样,都有结束符

    使用vim分别打开文件 ,在命令行模式下,输入:set ff 查看文件结束符格式 
     

    vim f.txt
    
    : set ff

    显示如下

    fileformat=unix 

    而另一个文件相同操作显示的是 fileformat=dos

    3. 转换文件格式

    根据上面查看的结果,需要将f23.txt的文件格式从dos转换为unix.因此,使用vim 打开f23.txt.并输入如下命令

    :set fileformat=unix
    :wq

    即可。

    参考:

    1.vi显示回车换行等特殊字符

    2.vi下显示回车换行符等特殊符号

    3.vim 将文件从dos格式转换到unix格式

     

    展开全文
  • linux中echo命令,在编程中时常使用,在终端进行打印变量时也时常使用,因此笔者作出...输出字符串间以空白字符隔开, 并在最后自动加上行号。 参 数:-n 不要在最后自动换行 -e 若字符串中出现以下字符,则特...
  • 所以当时就在一行的最后增加了两个字符,一个是回车,指的是把打印头定在左边界(还是在这一行);另一个是换行,指的是让打印头进入新的行。 回车符和换行符的意义: 回车符:回到一行的开头,'\r' ,Ca...
  • Linux中,这种行为似乎有所不同——当我逐行读取一个文件并打印其内容时,我总是发现最后一行换行符结尾,即使在真正文件中并不存在这样字符!我也试过用文件.readline()函数,结果相同。在(我假设文本文件...
  • Linux服务器某个解析文件的程序时,某一行为“[Title]”,而这个文件是在windows上编辑生成的,切不可认为]是这一行的最后一个字符,而写出: if ( strTitle[strTitle.length()-1] != ] ) break; // 格式不正确,...
  • Java在Mac OS、Unix/Linux、Windows中文本文件的换行符: \n: Mac os下的文本文件换行符 \r: unix下的文本文件换行符 \r\n: windows下的文本文件换行符 昨天为这个问题纠结了许久,把文件读取到二维...
  • 1.必须知道textarea中的换行符是 \n (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之前,请仔细看好手册解释,我就是搞郁闷了,一般都理解为将\n转换成 ,其实不是的: 看php手册解释: nl2br – ...
  • php表单转换textarea换行符

    千次阅读 2012-04-20 19:30:02
    今天在项目中遇到个textarea换行的问题,调试了半天都没有解决。...1.必须知道textarea中的换行符是 \n (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之前,请仔细看好手册解释,
  • vim中显示windows或者dos的换行符^M http://blog.chinaunix.net/uid-14214482-id-3220695.html   linux下,如果需要在vim中查看^M,需要使用如下命令:e ++ff=unix % 。   有时候,我们在 ...
  • ubuntu 和 DOS 换行符

    2013-11-04 15:31:47
    但是作为只高贵的程序狗,怎么能不搞明白呢,又搞了几个小时,忽然想到以前看过linux下和win下的换行符是不一样的。杭电的OJ使用DOS的换行符,而我是在ubuntu下生成的数据-_-||,果断把生成数据的程序换行输出改成...
  • 删除linux下看到^M

    千次阅读 2012-10-29 10:37:13
    在 Vim 命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中所有 ^M 字符。... 后面 $ 代表匹配内容,最后的 g 则表示每中匹配到内容都要置换--全局替换,否则只替换每中匹配到个。
  • 记得去掉csv文件每记录的最后一个字段时awk处理要比sed快很多,于是尝试使用awk来替换分隔,经过测试效率能够提高5-6倍,在此记录一下。 一、对一个200w+文件处理,每有6个字段 1、使用sed处理(用时76s...
  • 使用awk将文件中多行转换成1行 1. 采用awk awk默认将记录分隔(record separator即RS)设置为\n,此行...sed默认只按行处理,N可以让其读入下一行,再对\n进行替换,这样就可以将两行并做一行。但是怎么将所有行并
  • 近来做嵌入式开发,环境就是Win7+Cygwin(别问我为什么不用linux.....然而不知道是由于SVN客户端原因还是什么其他原因,从服务器上Down下来脚本都变成了DOS换行符'\r\n',这下Cygwin不认了。尤其是行末
  • 因为Windows和Unix文件的换行符是不同的 在UltraEdit中执行一下格式转换Dos->Unix, 再保存就没问题了 如果有问题就多个格式互相转一下,最后转回unix
  • linux read 少读末尾一行的问题

    千次阅读 2018-11-13 00:06:02
    写过个脚本,把文件 a.txt 里内容读出来逐行处理,相关脚本是这样写: cat a.txt | while read -r line ...大概是因为 read 认为,没有换行符结束行,是不完整。那么是不是加上换行就可以了呢?...
  • linux 下将多行合并成一行的办法

    千次阅读 2014-02-17 12:37:44
    我们知道tr可以进行替换操作,对吧,那我们将换行符“\n”进行下替换就行了么,不过要注意最后一个换行处理 注意最后一个echo可以找回我们的最后一个换行 2、awk awk实现原理,其实主要是ORS...
  • 今天在项目中遇到个textarea换行的问题,调试...1.必须知道textarea中的换行符是 \n (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之前,请仔细看好手册解释,我就是搞郁闷了,一般都理解为将\n转...
  •  windows、linux的换行符不同。  test.h 在windows编辑的,转到linux会出现该问题。  三、解决  将window格式文件,转为linux格式:dos2unix test.h  如果没有dos2unix:  1. 在另台机器上:
  • 1、tr我们知道tr可以进行替换操作,对吧,那我们将换行符“\n”进行下替换就行了么,不过要注意最后一个换行处理 注意最后一个echo可以找回我们的最后一个换行 2、awk awk实现原理,其实主要是OR...
  • 文本流 文本流,也就是我们常说的以文本模式读取文件,文本流的有些特征在不同的系统中可能不同。其中之就是文本行的最大... 标准C把文本定位为零个或多个字符,后面跟个表示结束的换行符(\n),对于那些文本...
  • 1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到数据,值得注意是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。 2.每次调用,fgets都会把缓冲区的最后一个...
  • 使用sed抓取第二行,-n ‘2p’代表第二行,-n ‘1,3p’代表第到三行,以回车换行符区分。执行 udhcpc | grep “DNS” | sed -n ‘2p’ 使用awk抓取第四列,$4代表第四列,以空格区分。执行 udhcpc | grep “DNS”...
  • 问题由来 昨天在测试的时候,遇到了一个问题,在计算文本文本的行数的时候,直接在linux系统,用的...少一行的原因就是因为wc –l是按\n作为行结束统计行数,所以最后一行如果没有\n的话会统计丢失。windows环境下...
  • Linux 下处理字典一些Shell命令

    千次阅读 2014-08-17 10:23:13
    0x00 Windows&&Linux换行符  Windows换行符是\r\n ,Linux换行符是\n,一些处理Shell命令: sed -e 's/.$//' dos.txt > linux.txt # 删除最后一个字符,删掉\r,不推荐,如果最后不是\r,则字符会被删掉   ...
  • linux 命令

    2016-07-26 18:24:00
    需要注意的是:一行的末尾如果没有回车符,则不算是一行,也就是说,如果一个文件的最后一行末尾没有换行符,wc命令统计的行数会比实际行数少一,所谓实际行数是你所看 到的行数,实际上,没有回车符,确实不能算作...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 163
精华内容 65
关键字:

linux怎么删除最后一行的换行符

linux 订阅