oracle字符串左对齐,批处理 如何替换文本内的指定字符并按每列行排头对齐(左对齐)的格式输出为log文件?(兼容windwos和Linux)...

(标题太粗长是不是很不友好?)

^_^举个栗子^_^:

我有以下文本数据:

12||我是中国人||56||78||20150607

13||我是俄罗斯人||56||76||20190607

14||我是安徽人||56||76||20190607

15||我是悉尼人||56||76||20190607

通过批处理后,我希望去掉“||”,得到如下效果(相当于对文本数据进行了一次整形,然后输出到log文件中,每一列分隔符可以是空格,也可以是tab。整完形之后显得很规整的样子,每一列都是以最长的那个字段再输出个指定的字符。):

12  我是中国人 56 78 20150607

13  我是俄罗斯人 56 76 20190607

14  我是安徽人 56 76 20190607

15  我是悉尼人 56 76 20190607

输出后的数据是否显得十分的规整,辣么你可以这么做:

@if (0)==(0) echo off

cscript //nologo //e:jscript "%~f0" < a.txt

pause & exit

@end

var i = 0, arr = [], max = [];

var reg = /[^\x00-\xff]/g;

while(!WSH.StdIn.AtEndOfStream){

var strLine = WSH.StdIn.ReadLine();

if(!/^\s*$/.test(strLine)) {

arr[i] = strLine.split('||');

for(var j=0; j

var len = arr[i][j].replace(reg, '..').length;

if(!max[j] || len > max[j]) max[j] = len;

}

i++;

}

}

for(var i=0; i

var s = '';

for(var j=0; j

var len = max[j] - arr[i][j].replace(reg, '..').length;

var space = ' ';

for (var k=0; k

s += arr[i][j] + space;

}

WScript.Echo(s);

}

把上述代码放到.bat文件中,执行就OK了。

至于代码啥意思,怎么修改,我相信你懂的。

^_^我的公众号:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值