Linux—CRLF/CR/LF等回车换行符问题详解
关注微信公众号:CodingTechWork,一起学习进步。
引言
在开发阶段,开发环境测完的配置文件(页面化管理)和shell脚本在上生产时,出现了字符和变量(变量从配置文件中获取)拼接缺失等莫名其妙的问题。
名称介绍
ASCII字符代码表
CR
CR: Carriage Return
,对应ASCII中的转义字符是\r
,对应ASCII值是13,常用于Macintosh
(早期的Mac OS
)系统单个字符,表示回车。
LF
LF: Line Feed
,对应ASCII中的转义字符是\n
,对应ASCII值是10,常用于Unix/Linux/Mac OS X
系统中单个字符,表示换行。
CRLF
CRLF: Carriage Return & Line Feed
,对应ASCII中的转义字符是\r\n
,常用于Window
系统中两个字符,表示回车并换行。
问题
shell脚本在不同系统使用问题
问题描述
在Windows
系统开发了某个shell脚本,默认是CRLF
格式的,在转移到Linux
系统上执行时,无法正常执行。
解决方案
方案一:使用notepad++
打开
notepad++
软件,显示符号
或者
替换所有
CRLF
为LF
或者
方案二:使用Linux系统相关命令将文件转化为unix格式
一共有三种方式:
- 使用
dos2unix
命令dos2unix file_name
,前提是Linux安装了该命令功能。 - 使用
sed
命令sed -i "s/\r//" file_name
或者sed -i "s/^M//" file_name
将回车字符删除掉。 - 使用
vi/vim
命令,执行:set ff=unix
将文件设置为unix
格式文件。
shell脚本所获取的配置文件内容字符存在^M字符
问题描述
通过使用cat -A file_name
的命令可以查看隐藏的字符,shell脚本所获取的配置文件内容字符存在^M
字符,即存在\r
回车字符。
解决方案
在shell脚本对变量使用
key1=`echo $key1 | sed "s/\r//g"`
总结
名词 | 含义 | ASCII字符 | 系统 |
---|---|---|---|
CR | Carriage Return,回车 |
\r
|
Macintosh (早期的Mac OS )系统
|
LF | Line Feed,换行 |
\n
|
Unix/Linux/Mac OS X 系统
|
CRLF | Carriage Return & Line Feed`,回车并换行 |
\r\n
|
Window 系统
|
Linux—CRLF/CR/LF等回车换行符问题详解相关推荐
- html+正则+换行+回车,正则与回车换行符使用详解
这次给大家带来正则与回车换行符使用详解,正则与回车换行符使用的注意事项有哪些,下面就是实战案例,一起来看一下. C#中,读取文本文件内容,里面往往有许多回车换行符("\r\n"), ...
- 回车换行符 crlf 那点事
不同的操作系统回车换行符定义是不一样的,如果你跟我一样记不住,crlf几个字段的含义的话,记录下来就非常有必要了 win \r\n CRLF ASCII 13 carriage ret ...
- windows下回车换行符在Linux下显示^M问题
背景: win下的PHP文件打包,在Linux下解压后,在git status 时,显示发生修改,但并没有修改,查看文件会发现这种字符^M其实就是因为换行符的原因 ,Windows换行符和Linux换 ...
- linux换行符 r,\r \n 回车换行符详解
\r \n 回车换行符详解 \r \n 回车换行符详解 \r \n 回车换行符详解1. \r \n 回车换行的含义1.1 \r 回车 1.2 \n 换行 2. \r \n 回车换行的历史2.1 \r ...
- linux系统下回车换行符
简述 回车换行符在文本文件的读写中经常用到,windows下面稍微复杂点,linux系统下更为简单. 详述 回车和换行是两个不同的概念. 回车,就是告诉计算机把头定位在左边界:换行,就是把头向下移动一 ...
- java回车换行符linux,回车换行符 java
回车换行符 java [2021-01-31 11:28:50] 简介: java中的换行符是[\n]和[\r].二者的区别是:[\r]表示回车,[\n]表示新行,但两者都可以实现换行.具体实现方法 ...
- \r \n 回车换行符详解
\r \n 回车换行符详解 1. \r \n 回车换行的含义 1.1 \r 回车 1.2 \n 换行 2. \r \n 回车换行的历史 2.1 \r \n 回车换行的历史 2.2 发展:linux 和 ...
- c语言回车换行符的作用,求助,c语言如何输出回车换行符啊?
C语言在向计算机输入文本文件时,将回车换行符转换为换行符,在输出时把换行符转换成回车和换行两个字符.在用二进制文件时,不进行这种转换,在内存中的数据形式与输出到外部文件中的数据形式完全一致,一一对应. ...
- 在windows系统写脚本,如何去掉回车换行符
在windows系统写脚本,如何去掉回车换行符 在windows系统中写bash脚本,然后再拿到linux系统中运行,通常会遇到这样的问题: 无缘无故多出 "\r",这是windo ...
最新文章
- python树莓派设备_Python+树莓派制作IoT(物联网)门控设备
- 【深度学习】相当全面的深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)...
- 5 款可替代 du 命令的工具!
- 前端代码是怎样智能生成的?
- c语言穷举算法 枚举法,c语言枚举法 穷举法 ppt课件
- 【HDU - 4055】Number String(dp,思维)
- Oracle笔记 十一、PL/SQL函数和触发器
- “找不到网络路径”的检测方法及解决方案
- php记住用户名功能,php使用cookie实现记住用户名和密码实现代码
- PhpSpreadsheet如何读取excel文件
- 操作系统原理实验报告——进程控制与描述
- 学生考勤及行为管理系统_学生考勤信息管理系统.doc
- php讲字符串转成数组中,PHP将字符串转数组
- sse服务器推送性能,SSE 服务端向客户端推送
- Linux源码编译安装步骤及命令
- 一次重新的认识--第二次随笔
- 安装maven的eclipse插件出现Cannot complete the install because one or more required items could not be found
- 不良资产处置,正在爆发的10万亿蓝海市场
- 【Qt系列】实时显示鼠标位于QGraphicsView或QGraphicsScene坐标点
- 重磅!中国新型类脑计算芯片首登《自然》封面
热门文章
- dist文件部署到服务器,npm run build之后生成的dist如何扔到服务器运行(npm run build之后如何本地运行)...
- JS正则密码校验之:JS正则匹配半角英文符号
- 部落冲突自动采集资源源码
- 如何使用集成在 SharePoint 中的开源 ONLYOFFICE 文档替代微软 Office
- 微型计算机四千元典型配置,4000元电脑配置推荐 四千元配置的电脑好用吗
- OFD开发系列(三)-文本提取
- 基于强化学习的多智能体框架在路由和调度问题中的应用
- 微信删除朋友圈多久会从服务器消失,那些从你微信朋友圈消失的人,就别再联系了,原因很简单...
- JPG,PNG和GIF
- SQL小知识011:利用Case When Then多条件判断与分类统计