2

我正在尝试将制表符分隔的文件剪切并粘贴在一起,并且一直以这种方式使用 unix 中的剪切和粘贴实用程序:

cut -f 1-66 file1 > file1a
cut -f 68- file1  > file1b
paste file1a file1b

但是我想知道是否有办法在 Perl/Ruby 中使用 -F 命令来完成它,因为从长远来看这可能会更快。例如

perl -F/\\t/ -ane
for every line in document
  for i (0..66) and (67..Last field in line)
    print $[i]
   end
   print \n
end
4

2 回答 2

4

Perl 可以这样工作:

perl -F/\\t/ -ane  'print join("\t", @F[0..66,68..$#F])'

@F包含部分字符串,$#F包含最后一个元素的索引@F

于 2012-10-17T15:48:50.637 回答
4

您的原始代码似乎缺少一些重定向。

怎么样:

cut -f1-66,68- input > output

我认为 perl 或 ruby​​ 不太可能比这更快。

于 2012-10-17T15:45:52.533 回答