這兩種讀取文件filename
的每一行,並與25個空格前面加上它打印出來,什麼都重定向到一個文件。您可以使用
3210
或
perl -pe '$_ = " " x 25 . $_' filename > outfile
的命令是所有的實際目的是相同的,都逐行讀取文件中的行這是你想要什麼,如果文件很大。 > outfile
將輸出重定向到具有該名稱的文件。
每個以上的例子是一個完整的命令行程序,進入正,並在終端中執行的。開關
-e
意味着一切是在以下的單引號,'...'
之間,要由Perl作爲一個程序執行。它可以是任何有效的Perl代碼。
但是,這些單線程迷你程序來與額外的便利。
-n
設置在標準輸入的循環,所以被讀出一行行的命令(filename
以上)後提交文件和任何代碼是之間''
對每個其反過來線的執行。所以我們不必打開一個文件並手動循環播放它的文件。
-p
和-n
一樣有一個額外的便利 - 一旦它被處理,它就會打印該行。所以如果我們想要打印每一行,我們可以使用-p
,而不必說print
。上面的第二個例子使用這個。
-i
改變輸入文件「就地」下面使用。還可以進行備份,請參閱文檔。
每一行都被讀入默認變量$_
,並且Perl中的許多工具默認對其進行操作(如果沒有變量傳遞給它們)。例如,要打印一條線,我們經常只說print
。這裏每行都需要操作,所以我明確使用$_
,但大多數時候我們不這樣做。
有相當多的,看perlrun
注意,通過andlrc
在評論規定 - 一個也可以使用$"
爲單個空格
perl -pe '$_ = $"x25 . $_' filename > outfile
From Special Variables in perlrun
- $「
將數組或數組切片插入到雙引號字符串或類似上下文(如/.../)中時,其元素由此值分隔。默認是一個空格。
要改變原來的文件添加開關-i
,對 「就地」。這適用於任一版本以上
perl -i -ne 'print " " x 25 . $_' filename
此輸入filename
將被改變後(使每行有25位前置)。可以保存原始文件的備份,請參閱Command switches in perlrun
。
'sed的 's/^//''(這裏我輸入25位,但SO降價可能去掉大部分,它與一些' '非打破空間更好,但該死的很費勁)。 –
看起來像是一個X-Y問題。下一步將使用什麼空間? – karakfa