我有一个带有以下内容的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
答案 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