标题: [文本处理] 批处理怎么判断每行的第二列为空值的,自动加个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
- @echo off
- gawk "BEGIN{FS=\"----\";OFS=\"----\";}{if($2==\"\"){print $1,\"123456\";}else{print;}}" 1.txt
- pause
复制代码
作者: 649918043 时间: 2015-1-16 09:54
不行啊 gawk是第三方吧 是把要处理的文本改为1.txt吧 我测试了 没作用啊,
----的空没添加任何字符啊
作者: DAIC 时间: 2015-1-16 09:54
回复 2# yiwuyun
简化:- 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 - 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 |