从csv文件中的一列中删除最后一个字符(无论它是什么)

时间:2013-12-23 13:43:40

标签: powershell

我有一个带有以下内容的csv文件...我需要将UPC列保留为13个字符(删除最后一个字符)如何在powershell中执行此操作。尝试trimend,trim,trimstart,没有任何作用,因为它删除了我在trim语句中放入的所有数字,而不仅仅是最后一个。

ZONE     UPC                TPR_SALES

10       12345678901234     10.00

12       43210987655421     20.00

10       23432654654646     30.00

10       67356753677777     1.00

13       86753098675309     0.50

3 个答案:

答案 0 :(得分:4)

看一下substring()方法:

('12345678901234').substring(0,13)
1234567890123

在本例中,第一个参数是起始位置,第二个参数是要包含的字符数。

答案 1 :(得分:0)

如果您要导入和导出文件,您也可以尝试这样的操作来删除最后一个字符。但是,如果您知道所需的确切长度,substring()会更好。

$_.UPC = $_.UPC -replace '(\w)$'

答案 2 :(得分:0)

@mjolinor有一个很好的建议,但是要小心,如果列不是至少13个字符,则子串消息将通过错误。我使用的一个powershell独占方法是-join $string[0..12]。它可能更加计算密集。因为它必须将字符串扩展为数组,在整数上枚举数组,然后将数组Jon转换为字符串,但当字符串短于所需长度时,不会抛出exceptin