我有一个csv文件,其中包含3列,如下所示
Jones Smith 656220665
我想将其转换为
琼斯·史密斯000000000
我的问题不是所有数字的长度都相同。有些是7位数长。我似乎找不到一种将它们从当前格式更改为0,s的方法,而不得不使用sed
和cut
这是我尝试并尝试操纵以适应我的需求的2个代码
sed 's/\([^ ]*\) \([^_]*\)_\(.*\)/\1 \3/g' Input_file
和
$ sed 's/\(\([^,]\+,\)\{1\}\)\([^,]\+,\)\(.*\)/\1\3\3\4/' /path/to/your/file
答案 0 :(得分:0)
与其使用sed,不如这样做:
echo 'Jones Smith 656220665' | tr '[0-9]' '0'
Jones Smith 000000000
对于当时的整个文件:
tr '[0-9]' '0' < file > file.tmp
编辑1: 添加了sed解决方案:
sed 's/[0-9]/0/g' smith
Jones Smith 000000000
stil 编辑2:
cat ClientData.csv > ClientData.csv.bak
sed 's/[0-9]/0/g; w ClientData.csv' ClientData.csv.bak | cut -d" " -f 1-2
答案 1 :(得分:0)
您可以使用string inputName = "id=4 issue=critical level project=ABC group=Group A";
string[] values = inputName.Split(' ');
List<string> output = new List<string>();
for (int i = 0; i < values.Length -1; i++)
{
if (values[i].Contains('=') && !values[i + 1].Contains('='))
{
output.Add(values[i] + ' ' +values[i + 1]);
}
else if (!values[i].Contains('='))
{
}
else
{
output.Add(values[i]);
}
}
string[] requiredValues = output.ToArray();
的以下常规替换来非常简单地完成此操作:
sed
(其中sed 's/[0-9]/0/g`
用'g'
全局替换[0-9]
的所有实例),例如
'0'
试一下,如果您还有其他问题,请告诉我。