今日提供给产品需求,需excel文件,故总结要点如下:
1.默认间隔是space_20
2.修改为TAB \t _09
awk ' BEGIN { OFS="\t"} ;{ $1=$1 ; print $0} ' aa.txt>aa.xls
【实测发现如果aa.txt中有中文字符,输出的aa.xls中的中文会乱码,分割也会异常】
Ps :
1.查看工具 od -x -c ue
2.unix和win文本文件区别
Unix :每行结尾只有"<换行>", \n LF 10 ox0A ^J
Win: "<换行><回车>" \n\r LF/CR 13 ox0D ^M
结果:unix文件在win下变为一行,而win在unix下,每行结尾^M(偶的理解是unix控制字符集不包含回车)
ps:
od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。
它们对于访问或可视地检查文件中不能直接显示在终端上的字符很有用。
-c ASCII字符或反斜杠序列
-x 十六进制
###################################################################################
转换工具 unix2dos/dos2unix
unix2dos/dos2unix好用, 问题是unix2dos这个工具在我们大多数linux服务器上根本没有。
实现unix2dos的功能:
awk '{ print $0"\r" }' ur_file > ur_file.txt
实现dos2unix的功能:
dos2unix这个工具偶们的服务器上一般是有的, 但是万一要是木有呢? 不能站着干着急, 把windows格式文本里的'\r'这个字符删掉就OK,试试这个吧:
tr -d '\r' < dosfile.txt > unixfile.txt
或者strings dosfile.txt > unixfile.txt, 在这里,记得dos2unix只是把每行尾巴上的\r去掉, 而tr是把全文的\r去掉
PS: strings命令在一个目标或者二进制文件中查找可打印字符串,这使你可以读嵌入到二进制文件中的文本字符串,该字符串对编程可能很有用。也可以理解为“只打印可显示字符”, 这样会把win格式文件每行的\r都去掉。
来源:http://blog.chinaunix.net/uid-22421571-id-1774065.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29734436/viewspace-1806191/
,如需转载,请注明出处,否则将追究法律责任。