从文本文件的每一行中删除前 4 个字符

克里斯托弗·朗

我有一个充满这样行的文件。分号的数量总是相同的,并且在第一个分号之前总是有一个 3 个字符的字符串。

RT2;SS1234567;INV RED;13.06.2021;14.06.2021;154;Out;
RT2;XX1234567;INV RED;04.05.2021;14.06.2021;1472;Out;
RT2;FF1234567;INV RED;04.05.2021;14.06.2021;1472;Out;
RT2;LL1234567;INV RED;13.05.2021;14.06.2021;1472;Out;

我想从每行中删除开头的 3 个字符串和分号。

这就是我拉入文件的方式,它充满了我需要删除的空行和行

#import the file removing the first row and removing blank rows
$inFile = Get-Content -Path ($InFileDir + $InFileName)|Select-Object -Skip 1|? {$_.trim() -ne "" }

# Removes the (12334 rows affected) line that's added by sql
$inFile = $inFile|Where-Object {$_ -notlike '(*)'}

# Source file is two different sql table exports appended to each other, store the different headers
$header1 = 'RT1;Polref;Tranaction;Eff Dte;Process Dte;Fund;Movement;'
$header2 = 'RT3;Polref;Tranaction;Eff Dte;Process Dte;Fund;Qty;Amt;'

#Get some file positions
$RowBeforeheader2Index = $InFile.IndexOf($header2) -1
$header1Index = $InFile.IndexOf($header1)
$header2Index = $InFile.IndexOf($header2)
$LastRow = $inFile.Length -1

$outFile[$header1Index..$RowBeforeheader2Index]

foreach ($row in $outFile)
{
    //perform a substring on the row and add to $var
}

$var|Out-file 'C:\temp\output.txt'

我不确定如何填写 foreach 循环以达到我想要的结果。

曼努埃尔·巴钦

有很多方法可以做到这一点。如果你的操作真的像删除第一列那么简单,你可以这样做。假设$outFile您的示例中的内容对应于您的列表并且$var = @()已在您的脚本中设置,您可以将以下内容放入您的 foreach 循环中:

$null,$row = $row -split ';' # Turn the string into an array and dump the first element.
$var += $row -join ';' # Turn the array into a string using ; as delimiter

的内容$var应该是这样的:

SS1234567;INV RED;13.06.2021;14.06.2021;154;Out;
XX1234567;INV RED;04.05.2021;14.06.2021;1472;Out;
FF1234567;INV RED;04.05.2021;14.06.2021;1472;Out;
LL1234567;INV RED;13.05.2021;14.06.2021;1472;Out;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

每4个字符分割字符串?

使用sed删除Linux中文本文件任何一行的前五个字符

从文本文件的每一行中删除最后两个字符

如何使用vi删除文本文件中每行的前5个字符?

使用Linux删除少于4个字符的单词

用sed(或awk)在最后一个字符之前删除4个字符

如何在Debian中从文本文件的每一行创建多个字符串?

使用正则表达式从文本文件的每一行中删除子字符串

解析其列少于4个字符的行

Lua在字符串中每4个字符插入一个值

从文本文件中获取一行的前n个字符?

如何读取从文本文件到二维矩阵的一行中的每个字符?

向文本文件php中的每一行添加一个字符

当下一行的开头有一个字符时,请删除文本文件中的换行符

将文本文件中的每一行缩短59个字符,然后在其位置添加一个新的较短的字符串

删除所有不是4个字符的数字

为什么sscanf跳过每个字符串的前4个字符?

计算文本文件中第3列或第4列中的单词超过n个字符的行

删除文本文件中每行的前10个字符

删除两列的前4个字符之间包含重复字符串的行

如何从文本文件的一行中删除两个字符之间的空格

Python:写入文本文件时每N个字符结尾一行

将文本文件每一行中的每个字符添加到 Python 列表中

从 Pandas 系列中删除少于 4 个字符的单词

如何从多行字符串的每一行中删除前 40 个字符?

UITextView 最多 4 行,总共 140 个字符

C#如何从文本文件中删除最后2个字符并在我的文本末尾写入同一行?

匹配字符串中的前 4 个字符

Bash 替换 tail -f 后的前 4 个字符