记一次问题,linux下的文件格式的问题

今天做的一个功能,需要将mysql中的数据,存入redis中去,使用了管道的命令,将需要存储的字段,拼接为redis命令的文件,然后,利用linux的管道命令,将数据存入redis中去。

  cat redis_commend.txt | redis-cli -p 9600 --pipe

其中redis_commend.txt的文件格式如下:

HSET 100028_hash mobile 13366073835
HSET 100034_hash mobile 15300399710
HSET 100078_hash mobile 13366961590
HSET 100112_hash mobile 13370108622
HSET 100120_hash mobile 13521696647
HSET 100133_hash mobile 13311202661
HSET 100152_hash mobile 13366861638

然而,从window传到linux的文件,可以通过上述命令执行,但是,通过shell脚本生成的文件,却无法执行。

最后发现,是文件格式不正确。需要dos系统的文件格式,才能执行。

  一共有两种方式:

方式一:

于是执行如下命令:

按住shift + 冒号键 ,然后输入 set ff ,后按enter ,查看文件格式。

更改文件类型,输入:set ff=dos ,按enter

退出编辑,再次查看:

造成的根本原因,是由于,linux下和window下的空格,编码/n 和/r/n不一致,造成的。

方式二:

或者使用命令行的方式

 unix2dos redis_commend.txt

执行上述命令,即可将redis_commend.txt,有unix格式转为dos格式。

 

 

 

 

 

 

 

你可能感兴趣的:(linux运维)