[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何删除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

就是去掉所有的-和所有的:
同时第一个空格和第一个.改为,

谢谢大侠!
1

评分人数

python3
  1. #文本替换
  2. #2016年9月22日 15:41:56 codegay
  3. with open("csv.txt","r+") as f:
  4.     csv = f.readlines()
  5.     newcsv=[r.replace(" ","",1).replace(".",",",1).replace("-","").replace(":","") for r in csv]
  6.     f.seek(0)
  7.     f.truncate()
  8.     f.writelines(newcsv)
复制代码
本质是一个简单的字符串替换。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 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

TOP

回复 3# szy56801


    别点回复我。这和我没关系。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2* delims=. " %%a in ('type "test.csv"') do (
  3.     set "str=%%a,%%b,%%c"
  4.     set "str=!str:-=!"
  5.     echo;!str::=!
  6. )
  7. pause
复制代码

TOP

  1. powershell -c "(gc 'test.csv') -replace '-|:','' -replace '(?<=^\S+)\s+',',' -replace '(?<=^[^\.]+)\.',','"
  2. pause
复制代码
  1. //&cls&cscript -nologo -e:jscript "%~f0"<"test.csv"&pause&exit
  2. WSH.echo(WSH.StdIn.ReadAll().replace(/-|:/g,'').replace(/^(\S+)\s+/mg,'$1,').replace(/^([^\.]+)\./mg,'$1,'))
复制代码
  1. rem 第三方http://www.bathome.net/s/tool/index.html?key=gawk
  2. gawk "{gsub(/-|:/,\"\");sub(/[[:space:]]+/,\",\");sub(/\./,\",\")}1" test.csv
  3. pause
复制代码

TOP

返回列表