Text
如何給段落編號
我知道我已經問過這個問題,但我沒有得到有效的答案。那麼請問有人可以回答我的問題嗎?
我有一個文本文件,其中包含文本段落,每個段落由一個空行分隔。現在我需要用自己的編號為每個段落編號。所以第一段的邊距有數字 1,第二段的邊距有數字 2,第三段的邊距有數字 3,依此類推。我知道這似乎很明顯,但我認為我的最後一篇文章可能沒有清楚地傳達資訊。
所以我需要一個可以完成這項工作的 Linux 命令。但是,我的問題是命令需要簡單。我的意思是沒有復雜的 Perl 腳本或任何難以理解的程式碼塊。
我正在尋找的是一個可以輕鬆執行任務的簡單命令。或者,如果需要編寫腳本,請將其簡化並解釋程式碼,以便從未使用過 Perl 或 Bash 腳本的人仍然可以將其應用於他們的程式碼並理解他們在做什麼。
對不起,如果這個問題可能會讓人覺得不禮貌。響應將不勝感激,因為網路上沒有關於此主題的任何內容。
全部來自https://superuser.com/a/916248/151431
您可以使用
perl
$ perl -00pe 's/^/$./' file
-00
打開段落模式,其中“行”由連續的 \n\n 定義。-p``-e
告訴 perl 在執行on 它給出的腳本後列印輸入文件的每一行。s/^/$./
將用(^)
目前的“行”(段落)編號替換行的開頭$.
您可以使用
awk
$ awk -v RS='\n\n' -vORS='\n\n' '{print NR$0}' file | head -n -2
-v RS='\n\n'
將 awk 的記錄分隔符設置為連續的換行符。與 perl 的段落模式一樣,這使它將段落視為“行”。然後我們告訴它列印目前行號(NR)
和目前“行”$0
。-vORS=
將輸出記錄分隔符設置為連續的換行符,以便段落在輸出中也由空行分隔。head -n -2
以避免在輸出末尾添加兩個空行。