我試着去理解下面的Perl命令「刪除所有連續的空行,只留下一個」:刪除所有連續的空行,只留下一個過程:perl -00 -pe'
perl -00 -pe ''
首先它沒有任何代碼,-e是空的。接下來它有一個愚蠢的-00命令行選項 。此命令行選項打開 段落slurp模式。段落是兩條換行符之間的文本。所有 其他換行符都會被忽略。該段落放入「$ _」中, 「-p」選項將其打印出來。
我不遵循這個解釋。也許措辭不準確。
所以"A paragraph is text between two newlines."
但是每一行都是兩條換行符之間的文本。
"All the other newlines get ignored."
但是在兩個連續換行符之間沒有換行符。
"The paragraph gets put in "$_" and the "-p" option prints it out."
由於它對每兩條換行符之間的文本做了修改,所以會將整個文件壓縮成一個長行。它看起來像他們說這個命令應該做什麼?
它還說,另一種方式來寫它是
perl -00pe0
什麼是最右邊的0
代表什麼?
不管怎麼說,其實我是想實現的是刪除所有連續的白線,只留下一個空行。白線我的意思是一行可能不是空的,但只有空白字符(和換行符)。 是否可以修改上述命令來匹配這種情況?
任何聲稱*「接下來它有一個愚蠢的-00命令行選項」*的源都不會被信任。 – Borodin
第二個'0'是'-e'的參數,即要運行的程序。 – ikegami