我有一个逗号分隔文件,我需要更改第一列删除字符串中的前导零。文本文件如下
ABC-0001,ab,0001
ABC-0010,bc,0010
我需要在
下获取数据ABC-1,ab,0001
ABC-10,bc,0010
我可以执行命令行替换,我尝试如下:
sed 's/ABC-0*[1-9]/ABC-[1-9]/g' file
我最终得到了输出:
ABC-[1-9],ab,0001
ABC-[1-9]0,ac,0010
你能告诉我这里缺少的东西吗?
或者,我也尝试在生成此文件的SQL中应用格式,如下所示:
select regexp_replace(key,'((0+)|1-9|0+)','(1-9|0+)') from file where key in ('ABC-0001','ABC-0010')
,输出为
ABC-(1-9|0+)1
ABC-(1-9|0+)1(1-9|0+)
任何一种解决方案的帮助都会非常有用!
答案 0 :(得分:3)
试试这个:
var a = ["one", "two", "three"];
console.log(a.indexOf("two")); // output = 1
a.indexOf = function(val) {
return 'HAHAHA';
};
console.log(a.indexOf("two")); // output = 'HAHAHA'
答案 1 :(得分:2)
要在使用Oracle的查询中执行此操作,其中带有要删除的零的键值位于名为“file”的表中名为“key”的列中,如下所示:
select regexp_replace(key, '(-)(0+)(.*)', '\1\3')
from file;
你需要捕捉破折号,因为它在匹配时由正则表达式“消耗”。接下来是第二组一个或多个0,然后是其余的字段。替换为捕获的组1和3,将0(如果有)保留在out。
之间