解决办法
1. 安装dos2unix工具
]# yum install dos2unix -y
2. 转换文本文件
]# dos2unix file.txt
dos2unix: converting file job.sh to UNIX format ... #转换成功
问题原因
- 文件是经Windows编辑导致
- DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致
- ftp上传时也可能导致此情况发生
扩展
dos2unix使用方法
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
-k:保持输出文件的日期不变
-q:安静模式,不提示任何警告信息
-V:查看版本
-c:转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII
-o:写入到源文件
-n:写入到新文件
常用示例:
1. 一次转换多个文件
]# dos2unix file1.txt file2.txt file3.txt
2. 保留源文件,转换后的文件作为新文件
]# dos2unix -n file.txt file_new.txt
unix2doc使用方法
unix2dos [options] [file ...] [-n infile outfile ...]
顾名思义将unix格式转换为dos格式,使用方法与dos2unix类似
常用示例:
]# unix2doc file.txt
注意:如果是Windows编辑的文件中有多个空行,不能使用grep过滤空行(grep -Ev "^$" file.txt);需要先dos2unix转换后,方可以使用过滤空行的命令