我盡了最大的努力去理解a very similar StackOverflow question,但是我不能爲我的生活做出建議的gawk
或split
解決方案在我的情況下工作。將文本文件分解爲多個文本文件
我有一個大的文本文件,由288個提案組成,每個提案的長度爲300到500個字,段落數量不等(因此沒有一致的行數)。然而,每個提案都由以下性質的標識符指示:--###--
或--####--
。沒有結束標記 - 儘管我想我可以通過執行一些正則表達式搜索來插入一個,並在將原始文件分解爲多個文件之前替換原始文件。我想要的是288個單獨文本文件的集合,每個文本文件都由兩個破折號之間的數字命名。如果它讓事情變得更容易,我可以輕鬆地將這些文件分爲由三位數字和四位數字組成的提案。
概括地說,我想這樣做:
#! /bin/env bash or python
Split all_proposals.txt into 121.txt, 122.txt, etc.
Where all_proposals.txt consists of:
--121--
One Line Title of Proposal
Followed by several paragraphs each on a line of variable length.
Another paragraph for effect.
--122--
More lines indeterminate in number.
看起來你的問題是,「你能爲我寫這段代碼嗎?」,這不是Stack Overflow的意思。你嘗試過一些沒有用的東西嗎? –
'/ bin/env'不是標準位置。你想要'/ usr/bin/env'。 –
@NedBatchelder:以前的嘗試包括但不限於:'csplit abstracts.txt'/ - [0-9] [0-9] [0-9] - /''{186}'',' csplit -f abs abstracts.txt'/ - [0-9] [0-9] [0-9] - /''{186}'','awk'/ - \ d/{f = 1 ; C++} {print>「session。」i}'abstracts.txt'和'gawk -vRS ='\ n - \ [0-9] {3} - \ n'-vprefix =「file」' {print> prefix「ab-」NR「.tx t」}'abstracts_no_id.txt' ...所以,是的,我嘗試了各種不起作用的東西。 –