原文网址:http://blog.163.com/luokun_9/blog/static/2081883220076293302048/
dos2unix命令
这几天使用awk分析数据,在Windows下编好了awk代码,准备在Linux上使用。不过,在Linux运行时却出现错误。
[root@localhost]# awk -f sum_hop.awk overh.txt
awk:sum_hop.awk:1:BEGIN{
' in expressionk:1: ^invalid char '
在awk代码里面找了半天,也没有找到错误提示中的那个符号。把代码拿到Windows下的cygwin上面使用,可以正常使用,真的奇怪!
其实并没什么奇怪的,出现这种错误的原因是因为Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行。所以在Linux中使用Windows的文本文件常常会出现错误。为了避免这种错误,Linux提供了两种文本格式相互转化的命令:dos2unix和unix2dos,dos2unix把"/r/n"转化成"/n",unixtodos把"/n"转化成"/r/n"。
命令dos2unix和unix2dos的使用非常简单,格式为:
dos2unix filename
如果想更多的了解这两个命令,可以查看手册:
man dos2unix
它会告诉你dos2unix的高级用法。