这两种读取文件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