剪切和粘贴shell命令是否有Perl替代品?

剪切和粘贴shell命令是否有Perl替代品?,perl,paste,cut,Perl,Paste,Cut,我曾经看到过一个用于剪切和粘贴linux命令的快速而肮脏的Perl实现。有点像 perl'打印“$F1”文件名 替换剪切-f1文件名命令的步骤 有人能告诉我这是怎么回事吗?具体来说,我很感兴趣,因为这与剪切/粘贴不同,在Windows环境中也会起同样的作用。对于剪切:我认为您正在寻找perl-ane解决方案(-e执行以下代码,-an将@F=split(/\t/,$line)应用于文件中的每一行)。 比如: perl -ane 'print "$F[0]\t$F[1]\n"' file 这与:

我曾经看到过一个用于剪切和粘贴linux命令的快速而肮脏的Perl实现。有点像
perl'打印“$F1”文件名
替换剪切-f1文件名命令的步骤


有人能告诉我这是怎么回事吗?具体来说,我很感兴趣,因为这与剪切/粘贴不同,在Windows环境中也会起同样的作用。

对于剪切:我认为您正在寻找
perl-ane
解决方案(
-e
执行以下代码,
-an
@F=split(/\t/,$line)
应用于文件中的每一行)。 比如:

perl -ane 'print "$F[0]\t$F[1]\n"' file
这与:

cut -f1,2 file
对于粘贴,我不确定如何才能做到这一点,但我认为
perl-ane
可以将多个文件作为输入。

cut 要指定自定义输入分隔符

perl -F: -alpe'$_=$F[0]'
perl -F: -alpe'$"=":";$_="@F[1..3]"'
要更改输出分隔符

perl -F: -alpe'$_=$F[0]'
perl -F: -alpe'$"=":";$_="@F[1..3]"'
grep

perl -alne'print$F[0]if/blah/'
粘贴 不太容易

#!/usr/bin/perl
for (@ARGV ? @ARGV : qw(-)) {
    if ($_ eq '-') {push @files, *STDIN}
    else {open $files[@files], '<', $_}
}
while (grep defined, (@lines = map scalar <$_>, @files)) {
    chomp @lines;
    print join("\t", @lines), "\n";
}
#/usr/bin/perl
对于(@ARGV?@ARGV:qw(-){
如果($eq'-'){push@files,*STDIN}
else{open$files[@files],“你知道吗?它们是你最喜欢的unix命令的实现,但是是用Perl完成的。如果你有Perl,你可以在命令行上使用你最喜欢的命令,而不必使用杂技。PPT既有
剪切
也有
粘贴


尽管许多人向您指出了一些
perl
开关,但他们忘记了链接到哪个开关来解释它们。

perl相当于cut-c1-2


Perl -Alne的打印子串($$,0,2)'/p>注意剪切从最后一个字段删除新行,但是Perl不。表达式应该是“CHOMP(@ f);打印”$F[ 0 ] \ $ $ [1 ] \n '来修复它。<代码>粘贴< /代码>是更多的工作。请参阅几种可能的实现。您可能需要考虑安装CygWin,这样就可以(大部分)您习惯于从linux使用的命令行工具。:++!PPT是一个了不起的资源。如果您在win32平台上,它们会非常方便,并且它们演示了一些有趣的技术。