dos2unix 是将 Windows 格式文件转换为 Unix/Linux 格式的实用命令。
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
大多数原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。
-sh: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
Linux执行.sh文件,提示No such file or directory的问题:
不同操作系统 换行符 标准不统一, 秦始皇听了都要落泪。 多少年前, 我曾也被这东西坑过无数次, 往事不堪回首。
首先介绍下,在ASCII中存在这样两个字符CR(编码为13)和 LF(编码为10),在编程中我们一般称其分别为’\r’和’\n’。他们被用来作为换行标志,但在不同系统中换行标志又不一样。下面是不同操作系统采用不同的换行符: Unix和类Unix(如Linux):换行符采用 \n Windows和MS-DOS:换行符采用 \r\n Mac OS X之前的系统:换行符采用 \r Mac OS X:换行符采用 \n Linux中查看换行符 第一种使用"cat -A [Filename]" 查看,如下图所示,看到的为一个Windows形式的换行符,\r对应符号^M,\n对应符号$.
前段时间,有个朋友碰到由于Windows的换行符和Linux换行符不一样,导致程序编译不通过。这个问题之前自己也碰到过,网上资料也蛮多,不过还是借此总结总结,因为发现总结+实践的方式能够让自己更好的提升。
我们有时在Windows编辑的文件,放到了Linux环境中,打开文件,可能发现每行结尾多了一个“^M”,导致一些在Windows下能执行的解析程序,放到了Linux中,执行就会报错,问题就出在这个"^M"。
描述:xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
前几天编写的shell小脚本,测试自动安装MySQL的,今天测试运行,然后出现如下错误
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141698.html原文链接:https://javaforall.cn
Ubuntu系统打开Windows下生成的文本文件,会在每行的末尾出现’^M’ 原因就是Windows和Linux的回车符是不同的
windows和Linux的换行符存在差异,Windows下写的脚本拷贝到Linux系统,会导致#!/bin/bash后面多个^M,因此提示找不到文件。
偶然使用 windows 进行编写脚本。使用 wsl (windows subsystem for linux) 进行运行的时候,什么事情没有。但是当把脚本移植到远程服务器进行运行的时候,发现脚本执行出现了错误:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory 。一时间解决不了。理论上都使用wsl 执行过了,应该是没问题了。但是通过查找资料发现,确实是有问题:
这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
“回车”字符可以往回追溯很长一段时间 —— 早在打字机上就有一个机械装置或杠杆将承载纸滚筒的机架移到右边,以便可以重新在左侧输入字母。他们在 Windows 上的文本文件上保留了它,但从未在 Linux 系统上使用过。当你尝试在 Linux 上处理在 Windows 上创建的文件时,这种不兼容性有时会导致问题,但这是一个非常容易解决的问题。
dos2unix: converting file XXX.sh to Unix format ..
解决方案 如果centos服务器安装 yum -y install dos2unix 然后找到脚本目录执行 dos2unix carinet.sh即可 如果linux编写的脚本,放到windows服务器上运行的话,可以按照yum -y install unix2dos 然后转换后上传到windows服务即可
经过一番检索我发现,在使用命令行时,如果samplelist文件中的文本使用了DOS换行符(\r\n),则可能会导致输出结果不正确。
相信不少小伙伴都曾经用过/偶尔使用Windows下的命令行终端(可按键盘组合键win+R然后输入cmd启动)
在ASCII码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。
在Windows环境下用Notepad++写了个shell脚本,上传到Linux平台后运行报错如下:
在 ASCII 码中,我们会看到有一类不可显示的字符,叫控制字符,其中就包含\r 和 \n 等控制字符。
(说明:我们拿到的bed文件时常是客户在Windows系统下编辑好的,其行尾是\r\n,在进行NGS分析前最好将其转换为Unix风格的行尾\n。)
本文记录 Syntax error: end of file unexpected (expecting “then”) 错误解决方案。 问题原因 出现问题的原因是.sh文件是dos格式文件,但是linux的shell需要unix格式的文件 解决方案 转换文件格式 $ sudo apt-get install dos2unix $ dos2unix <filename> 随后重新运行 sh 文件 参考资料 https://blog.csdn.net/qq_38989148/article/det
我在 1993 年首次使用并贡献了免费和开源软件,从那时起我一直是一名开源软件的开发人员和布道者。尽管我被记住的一个项目是 FreeDOS 项目,这是一个 DOS 操作系统的开源实现,但我已经编写或者贡献了数十个开源软件项目。
1、什么是NTFS-新(N)技术(T)文件(F)系统(S)? 想要了解NTFS,我们首先应该认识一下FAT。FAT(File Allocation Table)是"文件分配表"的意思。对我们来说,它的意义在于对硬盘分区的管理。FAT16、FAT32、NTFS是目前最常见的三种文件系统。 FAT16:我们以前用的DOS、Windows 95都使用FAT16文件系统,现在常用的Windows 98/2000/XP等系统均支持FAT16文件系统。它最大可以管理大到2GB的分区,但每个分区最多只能有65525个簇(
在做一个小工具,把图片转为icns格式的。 macOS上有个iconutil工具,可以转换。但是如果放在Linux或者Windows上就没法使用了。
Ubuntu系统打开Windows下生成的文本文件,会在每行的末尾出现’^M’ 原因就是Windows和Linux的回车符是不同的 在Windows下回车符是\r\n回车换行 在Linux下回车符是\n 最简单、最常用的解决方法是使用dos2unix命令转换:dos2unix filename Ubuntu下dos2unix和unix2dos命令在tofrodos包中 安装:apt-get install tofrodos 安装完之后用dos2unix和unix2dos发现还是不能用,原来是Ubuntu10.04里已经不再用这个命令啦,
Windows下是CRLF(\r\n或0d0a),Linux下是LF(\n或0a)。在Linux下有时会遇到从Windows过来的文本文件,这些文件带了Windows换行符,Linux下进行脚本处理时有可能会出一些莫名其妙的错误。因此需要将这些文件转换为Linux换行符。
如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/h0564ssub1c.html 基础常识 1:软件开发 2:人机交互方式 3:常用的dos命令 软件开发 什么是软件: Software:是一系列按照特定的顺序组织的计算机数据和指令的集合 软件分类: 系统软件: eg:dos、windows、linux等 应用软件: eg:QQ、微信、支付宝、纸牌大战等 中间件:应用软件和系统软件中间的转换体 什么是开发? 软件制作 人机交互方式 交互方式: 1:图形化界
unix2dos: converting file baby to DOS format ...
管理员在进行系统操作的时候,不可避免地会对文本进行修改,如进行各种服务程序配置文件的改动,使程序对用户提供不同的服务效果。在本章我们向大家介绍Linux上常见的编辑器ed、vi、emacs,同时以vi为例,讲解Linux中的文本编辑,为大家成为优秀的系统管理员打下基础。
在mac或者linux中编译krpc,只要要输入以下7条命令 如果是在windwos上编译,需要下文更多命令的操作 (主要是由于编码的格式不同,需要对文件格式进行转换才能进行操作) #git命令 git clone https://gitee.com/fancytech/protobuf cd protobuf git checkout v3.5.1-krpc #在cygwin中操作的命令 ./autogen.sh ./configure make make install windows下的
原因是换行机制不一样,Unix下是\n(0A),mac下是\r(0D),win下是\r\n(0D0A)。导致的结果是在程序中会造成一定的混乱。
PenTBox是一个开源安全套件,包含许多面向网络和系统的安全性和稳定性测试工具。它是用Ruby编写的,面向GNU / Linux系统,但与Windows,MacOS以及Ruby工作的所有其他系统(应用程序内部提供Ruby可执行文件)兼容。
一直对换行符这个东西概念比较模糊,直到最近花了一点时间仔细研究了一下,才彻底搞清楚这个问题,本文前面介绍部分是外文转载,后面例子是个人总结,希望能对大家有一些帮助。 回车符号和换行符号产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,
功能:crt模式看文件浏览过滤 语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file ...] 用法: 需要按键操作浏览过程 空白键 (space):向下翻一页; Enter:向下翻一行; /字串:在这个显示的内容当中,向下搜寻字串这个关键字; f:快速翻页 q:退出more浏览 说明:more虽然可以浏览比cat更多的文件内容,但有缺点,不能往上翻页,只能往下翻页,直到结束。 4.less
大多数Linux都会自带的文本编辑器。 功能强大:代码补全、编译及错误跳转等方便编程的功能特别 丰富,在程序员中被广泛使用。 功能强大到其官方现在对自己的定位是“程序开发工具”
window系统一般文件名编码为gbk,文件内容编码这个需要通过编辑器查看或者设置,找个editplus文本编辑器就可以处理文本内容编码。
背景描述:删除文件夹时,文件中存在文件“.user.ini”,报出错误“删除user.ini提示Operation not permitted”。
* 因为本例中设置每天0点进行日志的拆分,所以folder和rq均设置采用昨天的日期进行归档。
文章目录 一、文件格式转换 一、文件格式转换 指定路径下所有cpp和h文件从windows转为linux。 #!/bin/bash function mydos2unix() { for file in `ls $1` do file_extension=${file##*.} if [ -d $1/$file ]; then mydos2unix $1/$file elif [ $file_extension ==
想要了解NTFS,我们首先应该认识一下FAT。FAT(File Allocation Table)是“文件分配表”的意思。对我们来说,它的意义在于对硬盘分区的管理。FAT16、FAT32、NTFS是目前最常
/dev/fdx 主设备号 fd 是软盘驱动器(floppydisk) 的缩写,次设备号x 是软盘驱动器相应的编号。
文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! Linux cat命令 cat 命令用于连接文件并打印到标准输出设备上。 Linux chattr命令 Linux chattr命令用于改变文件属性。 Linux chgrp命令 Linux chgrp命令用于变更文件或目录的所属群组。 在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。 Linux chmo
领取专属 10元无门槛券
手把手带您无忧上云