Board logo

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

作者: 649918043    时间: 2015-1-16 09:04     标题: 批处理怎么判断每行的第二列为空值的,自动加个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
这样就达到了目的,请教下高手,怎么弄
作者: yiwuyun    时间: 2015-1-16 09:30

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

作者: 649918043    时间: 2015-1-16 09:54

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

回复 2# yiwuyun


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

作者: 649918043    时间: 2015-1-16 10:02

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

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

因该加个什么代码
作者: DAIC    时间: 2015-1-16 10:28

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

作者: yiwuyun    时间: 2015-1-16 11:37

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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2