[20190710]windows文本格式.txt

[20190710]windows文本格式.txt

--//大家都知道windows文本格式是回车换行,与linux的文本格式存在一点点不同。
--//最近在windows下遇到一些问题,做1个记录。

D:\>seq 4 > d:\a
D:\>ls -l a
-rw-rw-rw-   1 user     group          12 Jul 10 17:33 a

D:\>xxd -c 16 a
0000000: 310d 0a32 0d0a 330d 0a34 0d0a            1..2..3..4..

--//你可以发现生成的文本格式是windows的文本格式。如果执行如下:
D:\>seq 4 | xargs -iQ C:\WINDOWS\system32\echo -e "create table tQ as select level id from dual connect by level<=power(4,Q)"
)as select level id from dual connect by level<=power(4,1
)as select level id from dual connect by level<=power(4,2
)as select level id from dual connect by level<=power(4,3
)as select level id from dual connect by level<=power(4,4
--//看到的输出很奇怪。
·
D:\>seq 4 | xargs -iQ C:\WINDOWS\system32\echo -e "create table tQ as select level id from dual connect by level<=power(4,Q)" > a

--//如果使用vim打开,可以发现实际上这里的Q在替换时带\r字符的。
create table t1
 as select level id from dual connect by level<=power(4,1
)
create table t2
 as select level id from dual connect by level<=power(4,2
)
create table t3
 as select level id from dual connect by level<=power(4,3
)
create table t4
 as select level id from dual connect by level<=power(4,4
)
--//也就是通过传递过来的是带有\r字符。
--//也就是要加一个过滤删除里面的\r字符。执行如下:

D:\>seq 4 | tr -d "\r" | xargs -iQ C:\WINDOWS\system32\echo -e "create table tQ as select level id from dual connect by level<=power(4,Q);"
create table t1 as select level id from dual connect by level<=power(4,1);
create table t2 as select level id from dual connect by level<=power(4,2);
create table t3 as select level id from dual connect by level<=power(4,3);
create table t4 as select level id from dual connect by level<=power(4,4);

--//这样小问题浪费半个小时,做一个记录很有必要。

请使用浏览器的分享功能分享到微信等