从|中提取特定变量分隔.txt并将它们提取到新的.txt

时间:2013-05-03 22:15:33

标签: perl extract user-input delimiter

我有一个.txt,即100,000行(观察),50列(变量),变量是|分隔。我想提取第8和第9个变量(如果索引从0开始,则为7和8)。在这样做的时候,我想用2列(这2个变量)创建一个100,000行(相同的观察值)的新.txt,其中这两个变量保持不变。分隔。

例如,一行中的数据格式为:

var1|var2|var3|var4|var5|var6|var7|var8|var9|var10|var11 .........

我想用这一行创建一个.txt:

 var7|var8

我试过了:

 $ perl -wplaF'|' -e'$_ = join "|", @F[7, 8]' fileoriginal.txt > filenew.txt

然而,这个输出只是一种胡言乱语。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

-F的参数被编译成正则表达式,而|是正则表达式中的特殊字符。要使用文字| char,您需要在命令行中对其进行转义。

其中一个

perl -F\\\| -wlape ...
perl -F'\|' -wlape ...

在Unix上做的伎俩。