从列

时间:2018-02-17 09:54:16

标签: shell unix unicode

我的文件如下。

[![在此处输入图像说明] [1]] [1]

我想从行间删除不可打印的字符。 任何人都可以帮我吗?

我使用了以下命令,但它从整个文件中删除了不可打印的字符

tr -dc' [:print:] \ n \ r' < Sample_file_excel.csv>

第1栏,第2栏,第3栏,第4栏,第5栏,第6栏,第7栏,第8栏,第9栏,第10栏 12310,42324564756,&#34;带有逗号&#34;,&#34;字符串的简单字符串,带或不带逗号&#34;,字符串1,USD,12,70%,8/1/2013 <登记/> 23455,12312255564,&#34;字符串,有,多个,逗号&#34;,&#34;字符串带或,没有逗号&#34;,字符串2,USD,433,70%,7/15/2013
23525,74535243123,&#34;字符串,逗号,

and - hypens and:semicolans&#34;,&#34; string with or,without commas&#34;,string 1,CAND,744,70%,5/6/2013 46476,15467534544,&#34;冗长的字符串,带逗号

,multiple:colans&#34;,&#34;字符串带或,没有逗号&#34;,字符串2,CAND,388,70%,9/21/2013 12310,42324564756,&#34;带有逗号&#34;,&#34;字符串的简单字符串,带或不带逗号&#34;,字符串1,USD,12,70%,8/1/2013 <登记/> 23455,12312255564,&#34;字符串,有,多个,逗号&#34;,&#34;带或的字符串,没有逗号&#34;,字符串2,USD,433,70%,7/15/2013 23525,74535243123,&#34;字符串,逗号,

and - hypens and:semicolans&#34;,&#34; string with or,without commas&#34;,string 1,CAND,744,70%,5/6/2013 46476,15467534544,&#34;冗长的字符串,带逗号

,multiple:colans&#34;,&#34;字符串带或,没有逗号&#34;,字符串2,CAND,388,70%,9/21/2013

输出应该是这样的:

第1栏,第2栏,第3栏,第4栏,第5栏,第6栏,第7栏,第8栏,第9栏,第10栏 12310,42324564756,&#34;带有逗号&#34;,&#34;字符串的简单字符串,带或不带逗号&#34;,字符串1,USD,12,70%,8/1/2013 <登记/> 23455,12312255564,&#34;字符串,有,多个,逗号&#34;,&#34;字符串带或,没有逗号&#34;,字符串2,USD,433,70%,7/15/2013
23525,74535243123,&#34;字符串,带逗号, - 超级和:半双语&#34;,&#34;带或的字符串,没有逗号&#34;,字符串1,CAND,744,70%,5/6 / 2013
46476,15467534544,&#34;冗长的字符串,逗号,多个:colans&#34;,&#34;带或的字符串,没有逗号&#34;,字符串2,CAND,388,70%,9/21/2013
12310,42324564756,&#34;带有逗号&#34;,&#34;字符串的简单字符串,带或不带逗号&#34;,字符串1,USD,12,70%,8/1/2013 <登记/> 23455,12312255564,&#34;字符串,有,多个,逗号&#34;,&#34;字符串带或,没有逗号&#34;,字符串2,USD,433,70%,7/15/2013
23525,74535243123,&#34;字符串,逗号和 - 超量和:semicolans&#34;,&#34;字符串带或,没有逗号&#34;,字符串1,CAND,744,70%,5/6 / 2013
46476,15467534544,&#34;冗长的字符串,逗号,多个:colans&#34;,&#34;带或的字符串,没有逗号&#34;,字符串2,CAND,388,70%,9/21/2013

1 个答案:

答案 0 :(得分:0)

使用\r制作测试文件:

$ awk 'BEGIN{OFS=","; print "a","x\ry","c"}' > file
$ hexdump -C file
00000000  61 2c 78 0d 79 2c 63 0a                           |a,x.y,c.|

$2$3

中删除非原始图片
$ awk '
BEGIN { FS="," }                 # set comma as separator
{
    for(i=2;i<=3;i++)            # fields 2 and 3
        gsub(/[^[:print:]]/,"")  # replace all non-printables with ""
}1' file                         # print
a,xy,c