WINDOWS和UNIX换行符的理解
# WINDOWS和UNIX换行符的理解
**file1.txt**
17.143.161.37 其他 美国
54.163.255.40 其他 美国 弗吉尼亚州 亚马逊公司
**[root@localhost home]# cat -v file2.txt | head**
> -v, --show-nonprinting
use ^ and M- notation, except for LFD and TAB -v, --show-nonprinting use ^ and M- notation, except for LFD and TAB
17.143.161.37 M-eM-^EM-6M-dM-;M-^V M-gM->M-^NM-eM-^[M-=^M
54.163.255.40 M-eM-^EM-6M-dM-;M-^V M-gM->M-^NM-eM-^[M-= M-eM-<M-^WM-eM-^PM-^IM-eM-0M-<M-dM-:M-^ZM-eM-7M-^^ M-dM-:M-^ZM-iM-)M-,M-iM-^@M-^JM-eM-^EM-,M-eM-^OM-8^M
可以看到在每行的末尾有个^M
while read line
do
ip=`echo $line | awk '{print $1}'`
echo "---------> "$line
delay=`ping -c 1 -W 1 "${ip}" | grep "bytes from" | cut -d " " -f 7 | cut -d "=" -f 2`
echo $line" "${delay} >> delay.log
done < ipdata.txt
但是没有显示想要的结果,时延反而打在每行的开头。结果如下:
28158.178 其他 美国
26287.7 其他 比利时
74.852.57 其他 韩国
## 原因
ipdata.txt文件是从windows主机copy到linux主机,且采用windows格式,所以怀疑是文件格式问题导致,将文件格式更改为unix格式后,脚本运行正常。
217.79.179.106 其他 德国 372
200.73.229.105 其他 巴西 440
62.182.67.244 其他 乌克兰 404
### WINDOW & LINUX的换行区别
Text files created on DOS/Windows machines have different line endings than files created on Unix/Linux
DOS uses carriage return and line feed ("\r\n") as a line ending, CRLF ( \r\n , 0D 0A )
which Unix uses just line feed ("\n"). LF ( \n , 0A ).
0D CR (carriage return) 回车键 displayed "^M" in Unix and Linux.
所以脚本中此条命令echo $line" "${delay} >> delay.log
读取完$line后每行后面多了个\r,表示回车,即回到每行的行首,所以${delay}会在行首覆盖显示
#### 历史
早期的计算机输出设备不是显示器,而是电传打字机,结构与普通的打字机差不多。有一个打印头在纸上打字,同时有一个电动机控制纸张的进出。当打印头到达行尾的时候,需要两个动作才能够到达下一行的行首:首先执行回车动作,将打印头移动到本行的行首,然后进行换行动作,电动机将纸张向上移动一行,这样打印头就处于下一行的行首,可以继续进行打印。回车和换行对应的控制字符分别是\r和\n,这就是windows中换行符为\r\n的由来。后来由于经常连续执行,所以在打印机中将这两个控制字符简化为一个控制字符,这就是linux/unix中的换行符\n的由来。
#### 解决
In [vim](http://www.vim.org/), use `:set ff=unix` to convert to Unix; use `:set ff=dos` to convert to Windows.
WINDOWS和UNIX换行符的理解的更多相关文章
- linux下与windows下的换行符
[原文有些许错误,已作了修改] 回车符号和换行符号产生背景 关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别.在计算机还没有出现之前,有一种叫做电传 ...
- Linux文件和windows文件在 换行符的区别
Linux或Unix文件,和windows文件,在来回处理时,如果不注意 换行符的区别,可能导致程序错误!!!深刻的教训.... 在早期的打印机时代,开始新的一行要占用两个字符的时间.如果到了一行的结 ...
- windows与linux换行符
我一次linux上写的脚本,利用vim进行脚本编写,然后下载下来在nodepad++上面打开,在nodepad上面新建了一个文件将原来文件内容复制过去,保存后下载复制文件在linux上面进行运行,发现 ...
- 修改windows文件的换行符
应用场景: 在办公中,有可能存在,某些命令脚本使用windows下的文本编辑器进行编写 当放到测试环境的Linux中时,运行报错 需要使用的软件:xxd hexdump dos2unix 1.运行w ...
- Linux中使用Vim快速更换文档中Windows换行符为Linux平台
一.简述 平时我们把Windows编写好的sh文件放在linux上跑时,经常出现换行符的问题.快速切换的解决方法如下: 二.解决 vim test.sh :set ff? 如果出现fileforma= ...
- git在不同平台windows、linux、mac 上换行符的问题
0.01 不同平台上换行符的问题 1,不同平台对换行符的制定不同 windows <回车换行> (carriage return AND line feed) “\n\r” CRLF Un ...
- windows和linux中换行符的转换
数据开发平台使用上传脚本报错:保存失败,文件编码格式不正确,请修改文件换行符为Unix终束符! 修改方式:DOS系统下,使用文本编译器另存为,然后选择换行符为unix终束符. 解释: windows ...
- windows配置换行符
CR.LF.CR/LF为不同操作系统上使用的换行符: Windows/DOS系统:采用CR/LF表示下一行: Unix/Linux系统:采用LF表示下一行: Mac OS系统:采用CR表示下一行: M ...
- Linux换行符和Windows换行符的区别与转换
不同系统文本文件的行尾换行符不同: Windows为一个回车'\r'(CR或^M)和一个换行'\n'(NL或LF)(括号内是其它显示方法) Linux为一个换行'\n' Mac为一个 ...
随机推荐
- php获取文件后缀的9种方法
获取文件后缀的9种方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...
- (转)java fail-fast机制
转自:http://blog.csdn.net/chenssy/article/details/38151189 Java提高篇(三四)-----fail-fast机制 标签: javajava提高篇 ...
- 【Raspberry Pi】GPIO-发光二极管控制
注意事项: 注意IO脚电流不能大于16mA,3V脚总电流不能大于50mA,所以两个二极管各上拉了400欧左右的电阻 采用物理针脚7和9做控制 其中output参数LOW为接通,HIGH为屏蔽 impo ...
- Oracle菜鸟之怎样创建和删除表空间
1.创建暂时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放文件夹下(通常是在实例名命名的文件夹以下) 能够通过 select * from v$datafile;查看全部数据文件 ...
- DICOM:docker实现DICOM服务虚拟化
背景: docker,是一个开源的应用容器引擎,眼下大多应用在部署和运维领域,然而因为全然使用沙箱机制,相互之间能够看做独立的主机,且自身对资源的需求也十分有限.远远低于虚拟机.甚至非常多时候.能够直 ...
- 第三篇:POSIX标准中的 “ 限制 ”
前言 在POSIX标准中,定义了许多限制.这些限制大约分为五类,不同类型的限制获取的方式不一样. 限制值分类 1. 不变的最小值 这类型的限制值是静态的,固定的. 2. 不变值 同上 3. 运行时可以 ...
- zoj3497(经典矩阵乘法)
原以为是用搜索做的题,想了好久都无法想到一个高效正确的解法. 后面发现竟然这就是矩阵的应用! 碉堡! 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 ——选自ma ...
- Openstack使用NFS作为后端存储
续:Openstack块存储cinder安装配置 接上使用ISCSI作为后端存储,使用NFS作为后端存储配置 参考官方文档:https://wiki.openstack.org/wiki/How_to ...
- confirm() event.target.getAttribute('id')
w <?php $wecho = '<form id="del' . $wid . '" method="POST" action="&q ...
- 第09章—使用Lombok插件
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...