我曾经sed
只允许数字和 csv 格式,我用作sed '/[^0-9, -, .]/d'
正则表达式。它仍然具有"_","1-0","1-1"
让我担心的o/p 特征。
sed 's/'"$(printf '\015')"'//g' ./abc.CSV | sed '/[^0-9, -, .]/d'
1,090216002122,128,126,134,124,-0,00,220,28,292688,077,040911,0858,0159
1,090216002123,128,126,134,124, 000,00,_220,28,292688,077,040911,0858,0159
1,090216002125,128,126,134,124, 000,00,220,28,292688,077,040911,0858,170
1,090216002126,128,126,134,124, 000,-.00,220,28,292688,077,040911,0858,0159
1,090216002130,128,126,134,124, 000,00,220,28,292688,077,040911,0858,
1,090216002134,128,126,134,124, 000,00,220,28,,077,040911,0858,0159
1,090216002135,128,126,134,124, 000,00,220,28,077,040911,0858,0159
11,090216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0159
1-1,090216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0159
1,000000000000,000,0,0,0,0,0,0,0,0,0,0,0,0
1,040216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0159
1,090216002137,128,126,134,124, 000,00,220,28,292688,077,040911,0858,0-1
我尝试过($9 ~ /^-?[0-9]+([.][0-9]+)?$/ )
似乎不适用于空间编号。我也尝试过
从 csv 文件中仅解析数字的最佳方法是什么?谢谢。
答案1
让我们看看你的命令:
sed '/[^0-9, -, .]/d'
这实际上做了什么:
它删除任何包含任何字符的行除了下列:
- 一个数字 (0-9)
- 一个逗号
- 从空格到逗号的任何字符 - 顺便说一下,其中包括下划线以及连字符
- 一段时间。
所以任何有任何字符除此之外的内容都会被删除。
你认为这会做什么:
我不知道。