dos2unix 命令用于将纯文本文件从 DOS 或 Mac 格式转换为 Unix。DOS 下的文本文件是以 \r\n 作为换行符,而 Unix 下的文本文件是以 \n 作为换行符。
dos2unix 是将 Windows 格式文件转换为 Unix/Linux 格式的实用命令。
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
-sh: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
不同操作系统 换行符 标准不统一, 秦始皇听了都要落泪。 多少年前, 我曾也被这东西坑过无数次, 往事不堪回首。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141698.html原文链接:https://javaforall.cn
Ubuntu系统打开Windows下生成的文本文件,会在每行的末尾出现’^M’ 原因就是Windows和Linux的回车符是不同的
-v:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误也会给出错误提示
前几天编写的shell小脚本,测试自动安装MySQL的,今天测试运行,然后出现如下错误
dos2unix: converting file XXX.sh to Unix format ..
最近接到一个 case:大数据分析那边反馈我们这边推送的数据同比去年同期少了很多。这是很不正常的,因为业务一直在增长。 于是,我开始顺藤摸瓜的跟进。一开始就发现一个小问题:scp 推送文件脚本执行后居
描述:xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
大多数原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。
偶然使用 windows 进行编写脚本。使用 wsl (windows subsystem for linux) 进行运行的时候,什么事情没有。但是当把脚本移植到远程服务器进行运行的时候,发现脚本执行出现了错误:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory 。一时间解决不了。理论上都使用wsl 执行过了,应该是没问题了。但是通过查找资料发现,确实是有问题:
首先介绍下,在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对应符号$.
这是因为脚本文件可能在window弄过,有window下的空行,把他转换成unix格式的就行。
前段时间,有个朋友碰到由于Windows的换行符和Linux换行符不一样,导致程序编译不通过。这个问题之前自己也碰到过,网上资料也蛮多,不过还是借此总结总结,因为发现总结+实践的方式能够让自己更好的提升。
经过一番检索我发现,在使用命令行时,如果samplelist文件中的文本使用了DOS换行符(\r\n),则可能会导致输出结果不正确。
#!/bin/bash # gb2312 转 utf8 编码 # 开发 : 小绿叶技术博客 eisc.cn # date : 2023.2.27 dir="./" ; echo "当前目录: $dir" sudo chmod 777 -R $dir/* # FileList=(`du -ah $dir | awk -F" " '{print $2}'`) # find ./ -type f | xargs dos2unix # 列出所有文件和目录 # xargs 作用是将管道前面的结果内容(
在Windows中编辑的shell脚本,传到linux系统中,在末尾发现出现了很多^M字符
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142582.html原文链接:https://javaforall.cn
在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下的
“回车”字符可以往回追溯很长一段时间 —— 早在打字机上就有一个机械装置或杠杆将承载纸滚筒的机架移到右边,以便可以重新在左侧输入字母。他们在 Windows 上的文本文件上保留了它,但从未在 Linux 系统上使用过。当你尝试在 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里已经不再用这个命令啦,
大家都知道,Ubuntu系统对中文的支持还是比较友好,除了对TEXT文件编码的识别有点问题以外。
Linux执行.sh文件,提示No such file or directory的问题:
陌溪这次和小伙伴们来聊一聊蘑菇博客的部署,在经过项目的不断更新迭代,部署方式也是经历了多个阶段。分别是:手动部署,Docker部署,Docker-Compose部署。而在这两天,陌溪应小伙伴们的要求,继续简化部署流程,完成了使用 一条命令部署蘑菇博客 。下面,让我们一起来看看蘑菇博客部署方式的变化。
本文记录 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
解决方案 如果centos服务器安装 yum -y install dos2unix 然后找到脚本目录执行 dos2unix carinet.sh即可 如果linux编写的脚本,放到windows服务器上运行的话,可以按照yum -y install unix2dos 然后转换后上传到windows服务即可
今天在linux上运行一个python脚本,总是报错bad interpreter,开始我以为是解释器的路径问题,可是whereis python告诉我路径没有错!
一直对换行符这个东西概念比较模糊,直到最近花了一点时间仔细研究了一下,才彻底搞清楚这个问题,本文前面介绍部分是外文转载,后面例子是个人总结,希望能对大家有一些帮助。 回车符号和换行符号产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,
* 因为本例中设置每天0点进行日志的拆分,所以folder和rq均设置采用昨天的日期进行归档。
(说明:我们拿到的bed文件时常是客户在Windows系统下编辑好的,其行尾是\r\n,在进行NGS分析前最好将其转换为Unix风格的行尾\n。)
功能:crt模式看文件浏览过滤 语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file ...] 用法: 需要按键操作浏览过程 空白键 (space):向下翻一页; Enter:向下翻一行; /字串:在这个显示的内容当中,向下搜寻字串这个关键字; f:快速翻页 q:退出more浏览 说明:more虽然可以浏览比cat更多的文件内容,但有缺点,不能往上翻页,只能往下翻页,直到结束。 4.less
windows和Linux的换行符存在差异,Windows下写的脚本拷贝到Linux系统,会导致#!/bin/bash后面多个^M,因此提示找不到文件。
背景描述:删除文件夹时,文件中存在文件“.user.ini”,报出错误“删除user.ini提示Operation not permitted”。
wget http://voip-sdk.oss-cn-beijing.aliyuncs.com/rtc_sip/install_rtc_sip.sh
3.0之后的版本与以往不同的是,在示警媒体类型处需要添加参数,按顺序被脚本引用,分别是1 2
前面介绍了一些关于rsync的功能与一些具体的命令格式、参数的使用意义等,今天我们来聊一聊整个实际生产过程中的实战操作过程
自己在服务器跑一些需要长期运行的程序时,偶尔会因为一些奇怪的原因挂掉,如果要人为去检查很麻烦,因此最好能够实现自动的检测和挂掉拉起。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
新手朋友安装FreeSwitch经常会碰到到一些问题,FreeSwitch 在CentOS系统常用版本都做了一键安装脚本。
原因是换行机制不一样,Unix下是\n(0A),mac下是\r(0D),win下是\r\n(0D0A)。导致的结果是在程序中会造成一定的混乱。
大多数Linux都会自带的文本编辑器。 功能强大:代码补全、编译及错误跳转等方便编程的功能特别 丰富,在程序员中被广泛使用。 功能强大到其官方现在对自己的定位是“程序开发工具”
Linux 常用指令 文章目录 简介 常用指令 虚拟机网络相关指令 虚拟机最简化安装开启网络服务 虚拟机指定ip 文件操作相关指令 文件提升权限 服务器之间传递文件 scp指令 rz/sz 指令 移动文件 删除文件 sed 相关指令 查看当前目录文件大小 rpm相关指令 查看是否安装服务 安装 卸载 ip相关指令 查看ip(三种方法) 防火墙 查看进程 查看资源 设置nfs 从机(slave) 主机(master) 打印不同颜色的字 文件从 dos 模式转成 unix 模式 批量将 wind
在前一篇 分布式监控系统Zabbix3.2跳坑指南 中已安装好服务端和客户端,此处客户端是被监控的服务器,可能有上百台服务器。监控的目的一个是可以查看历史状态,可以对比零晨和工作区间数据的对比,以便后期进行优化指导。还有一个是报警,总不能等到服务器出现异常了才去从头查是什么问题吧。所以这篇主要介绍报警中最基础的一个 配置邮件预警。 通常zabbix提供了 e-mail、sms、jabber、微信等预警方式,sms等前期需要资金投入那就先否决吧,谁叫老板不给钱。 安装邮件发送工具mailx 这里我
我正在macOS上制作一个NW.js应用程序,并想通过双击图标在开发模式下运行该应用程序。在第一步中,我试图使我的shell脚本正常工作。
领取专属 10元无门槛券
手把手带您无忧上云