标题: [文本处理] 批处理如何删除csv文本里每一行中的指定字符和替换指定位置的字符 [打印本页]
作者: szy56801 时间: 2016-9-22 15:33 标题: 批处理如何删除csv文本里每一行中的指定字符和替换指定位置的字符
本帖最后由 pcl_test 于 2016-9-22 20:14 编辑
csv文本数据处理求助
一个csv文本里都是这样的数据,要把
2015-10-08 08:59:00.500,97100.0,97610.0,1,97960.0,1,0
转换为
20151008,085900,500,97100.0,97610.0,1,97960.0,1,0
就是去掉所有的-和所有的:
同时第一个空格和第一个.改为,
谢谢大侠!
作者: codegay 时间: 2016-9-22 15:50
python3- #文本替换
- #2016年9月22日 15:41:56 codegay
- with open("csv.txt","r+") as f:
- csv = f.readlines()
- newcsv=[r.replace(" ","",1).replace(".",",",1).replace("-","").replace(":","") for r in csv]
- f.seek(0)
- f.truncate()
- f.writelines(newcsv)
复制代码
本质是一个简单的字符串替换。
作者: szy56801 时间: 2016-9-22 16:04
回复 2# codegay
谢谢!刚一个大神给了这个方案:
sed -i 's/-//g' sn_0.csv
sed -i 's/://g' sn_0.csv
sed -i 's/ /,/g' sn_0.csv
sed -i 's/\./,/' sn_0.csv
作者: codegay 时间: 2016-9-22 16:14
回复 3# szy56801
别点回复我。这和我没关系。
作者: pcl_test 时间: 2016-9-23 21:10
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,2* delims=. " %%a in ('type "test.csv"') do (
- set "str=%%a,%%b,%%c"
- set "str=!str:-=!"
- echo;!str::=!
- )
- pause
复制代码
作者: pcl_test 时间: 2016-9-23 21:12
- powershell -c "(gc 'test.csv') -replace '-|:','' -replace '(?<=^\S+)\s+',',' -replace '(?<=^[^\.]+)\.',','"
- pause
复制代码
- //&cls&cscript -nologo -e:jscript "%~f0"<"test.csv"&pause&exit
- WSH.echo(WSH.StdIn.ReadAll().replace(/-|:/g,'').replace(/^(\S+)\s+/mg,'$1,').replace(/^([^\.]+)\./mg,'$1,'))
复制代码
- rem 第三方http://www.bathome.net/s/tool/index.html?key=gawk
- gawk "{gsub(/-|:/,\"\");sub(/[[:space:]]+/,\",\");sub(/\./,\",\")}1" test.csv
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |