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

[文本处理] 批处理怎么判断每行的第二列为空值的,自动加个1?

怎么判断每行的第二列为空值的,自动加个1,列如
文本10万行

[email]sdfgsdgw@163.com[/email]----234532dsr
[email]dfgdfhdfh@163.com[/email]----
[email]sfdgedfhg@163.com[/email]----werwaefq234
[email]w342353xdgfd@163.com[/email]----
[email]dfgdfhdfh@163.com[/email]----sdgsdfasdadeww



判断----分列第2列为空的,自动添加个123456或者随便加个什么字符加1都可以   实现后
[email]sdfgsdgw@163.com[/email]----234532dsr
[email]dfgdfhdfh@163.com[/email]----123456
[email]sfdgedfhg@163.com[/email]----werwaefq234
[email]w342353xdgfd@163.com[/email]----123456
[email]dfgdfhdfh@163.com[/email]----sdgsdfasdadeww
这样就达到了目的,请教下高手,怎么弄

回复 4# DAIC
还是比较喜欢if...else的方式。嗯,可以用$2直接判断。

TOP

回复 5# 649918043
  1. gawk -F "----" "{$2=$2?$2:123456;print $1\"----\"$2}" 1.txt > 2.txt
复制代码

TOP

OK  以上3楼代码已经完成,,麻烦再请教下

如果
[email]dfgdfhdfh@163.com[/email]----sdgsdfasdadeww-----
再加上以上的情况要去掉最后的----
[email]dfgdfhdfh@163.com[/email]----sdgsdfasdadeww

因该加个什么代码

TOP

回复 2# yiwuyun


简化:
  1. gawk "BEGIN{FS=OFS=\"----\"}$2=$2?$2:123456" 1.txt > 2.txt
复制代码

TOP

不行啊   gawk是第三方吧     是把要处理的文本改为1.txt吧   我测试了 没作用啊,
----的空没添加任何字符啊

TOP

  1. @echo off
  2. gawk "BEGIN{FS=\"----\";OFS=\"----\";}{if($2==\"\"){print $1,\"123456\";}else{print;}}" 1.txt
  3. pause
复制代码

TOP

返回列表