我有一大堆ASCII文本文件需要使用文件中找到的内容进行修改,然后将它们连接成一个摘要文件。到目前为止,我使用逐步的方法取得了一定的成功。但是,我想一举做到这一点并且无法弄明白。我在PowerShell中编写了一个脚本,它将为一个文件执行我想要的操作,但我似乎无法弄清楚如何为文件夹中的所有文件修改它。我一直在努力处理循环和最终文件连接部分。
这是我的基本文件结构:
FILE1.TXT
第1行 - abc123 - 标题(我想从这里删除字符2,3和4并添加到数据行)
第2行 - data1
Line3 - data2
LineN - abc123 - 页脚(标题的副本)
FILE2.TXT
第1行 - efg456
第2行 - 数据3
第3行 - 数据4
LineN - efg456
FileN.txt
第1行 - hij789
第2行 - 数据5
第3行 - 数据6
LineN - hij789
我希望最终的输出文件具有以下结构,删除页眉和页脚,并从文件开头的新列中的标题中提取内容(这些是固定宽度文件):
Final.txt
第1行 - bc1data1
Line2 - bc1data2
Line3 - fg4data3
Line4 - fg4data4
Line5 - ij7data5
Line6 - ij7data6
我已经能够为一个文件解决这个问题并将代码放在下面:
cd "C:\Data\Files\"
$S1 = Get-Content File1.txt -First 1
$S2 = $S1.Substring(2,3)
Get-Content File1.txt | ForEach-Object {Add-Content a.txt "$S2$_"}
Get-Content a.txt | Select -Skip 1 | Select -SkipLast 1 | Set-Content out.txt
# extract header line
# limit to characters of interest
# append to the beginning of each line in file
# append all files together w/o first & last line
理想情况下,我可以在没有垃圾文件a.txt的情况下执行此操作,但到目前为止,我只能通过写入单独的文件来使其工作。任何建议/提示将不胜感激,因为我是PowerShell的新手(几个小时的练习)。