我有一個文本文件,我們將調用info.txt,該文本文件包含許多長行,每個行中都有許多標記,如下所示:批處理腳本,在文本文件中查找字符串並分離成多個輸出文件
A bunch of usless info {tag15}data data{Tag1}data {Tag2}data {Tag11}data {Tag1}data {Tag2}
所以這個文件,我需要找到{Tag15}拉和{TAG11} {Tag15}之間的所有內容,也可能是另一個{Tag15}和數據的片段放到一個新的文本文件英寸所以我有一個15.txt和一個11.txt包含正確的數據段,包括它和下一個標記字符串之間的所有標記。因此,在這個例子中15.txt將包含:
{tag15}data data{Tag1}data {Tag2}data data
{tag15}data data{Tag1}data {Tag2}data data data data {Tag3}data
{tag15}data data{Tag1}data {Tag2}data
而且11.txt將包含:
{Tag11}data {Tag1}data {Tag2}data data data {Tag3}data
{Tag11}data {Tag1}data {Tag2}data
{Tag11}data {Tag1}data {Tag2}data data
話雖這麼說,我可以看到這樣做的最合理的方式是找到所有Tag15的和Tag11,並將它們移動到一個新的行,所以我們不必確定數據集有多長時間,因爲它可以非常適合每個標籤集。通過另一個findstr處理文件,並將每個匹配的線拉出到適當的文件。我不知道該怎麼做的是在找到{tag15}或{tag11}的行中的確切點處插入一條新行。有什麼想法嗎?
總的來說,文本文件將包含大約200-300個這些標籤集,需要解析並分類到合適的txt文件。提前感謝您提供的任何幫助。
我對其他解決方案開放,而不僅僅是批處理,它恰好是我最舒服的。
編輯:
我可以理解爲什麼在這裏需要更多的信息,而對沒有提供它開始與道歉。因此,源文件每行中的代碼段總是以{tag15}或{tag11}開頭,但該代碼段後面的代碼可能因所推送的數據而異,例如,如果Tag2填充的是Y Tag3是必需的,但如果Tag2是N,那麼Tag3將不會存在於該段中,但tag5,6或200可能會存在。這就是爲什麼我覺得最好找到Tag15或11並將它移到自己的行,這樣你就不必依賴試圖確定要移動的字符串的長度。這個例子15.txt和11.txt是爲了說明它可能是什麼樣子,由於每一段不同的數據,但這裏是源文件可能是什麼樣子產生這些:
Line1: FirstLast 55555555 10092013 0000000 {tag15}data data{Tag1}data {Tag2}data data {tag15}data data{Tag1}data {Tag2}data data data data {Tag3}data {Tag11}data {Tag1}data {Tag2}data data data {Tag3}data
Line2: FirstLast 444444444 10092013 000000005 {Tag11}data {Tag1}data {Tag2}data {tag15}data data{Tag1}data {Tag2}data {Tag11}data {Tag1}data {Tag2}data data
我的想法是你取這個文件具有所有數據的它,並找到Tag15和TAG11並將其移動到自己的行,以便該文件將是這個樣子:
FirstLast 55555555 10092013 0000000
{tag15}data data{Tag1}data {Tag2}data data
{tag15}data data{Tag1}data {Tag2}data data data data {Tag3}data
{Tag11}data {Tag1}data {Tag2}data data data {Tag3}data
FirstLast 444444444 10092013 000000005
{Tag11}data {Tag1}data {Tag2}data
{tag15}data data{Tag1}data {Tag2}data
{Tag11}data {Tag1}data {Tag2}data data
現在,每一行是其自身的段,我們將只需使用Findstr運行一個For循環,並將這些行回顯到正確的txt文件,或者我錯過了什麼?前面提到的我最大的問題是我不確定如何將文件從其原始狀態轉換爲上面的示例,以便可以對它進行排序而無需知道我們嘗試提取的字符串的確切長度。我希望這有助於
請給出一個更好的描述你正在提取什麼和你想要在目標文件中。您在源文件中顯示了一行,並在目標文件中有三行。請清楚地顯示輸入和輸出。 – foxidrive
我同意foxidrive。我無法理解你如何從邏輯上期望從發佈的一行輸入中獲得你的15.txt和11.txt輸出。 – dbenham
沒有模式。例如:關於「{Tag3}」呢?或者,在{tag15}數據數據{Tag1}數據{Tag2}數據數據中,最後一個數據是從哪裏來的?需要Mor說明。 – Endoro