如何将文件A的第一列复制到文件b?

How to copy the first column from file A to file b?

我刚学过Perl编程,需要帮助。我想将 1 列从文件 A 复制到一个新文件。在文件A中有3列,我只想将第一列文件复制到新文件中,有人可以帮我吗?

file_a.txt

JJ | John Junior    | 300-400
SJ | Samuel Jackson | 500-600
CJ | Chris John     | 789-899
BB | Bernard Blaze  | 789-899
LV | Luis Villa     | 789-899

我想将第一列部分复制到新文件中:

newfile.txt

JJ
SJ
CJ
BB
LV

我在网上发现,我需要使用分隔符制表符(\t) 来分隔列并使用分隔符换行符(\n) 来拆分行。(但我不明白)

对不起,我是初学者,也许有人想帮助我。谢谢

过滤第一列的方法有很多:

  • cut -d ' ' -f1 in_file > out_file (UNIX/Linux/Mac OSX)
  • nawk '{ print }' in_file > out_file (UNIX/Linux/Mac OSX)

如果您对 perl 脚本感兴趣

use strict;
use warnings;
use feature 'say';

my $in  = shift;
my $out = shift;

open my $fh_in, '<', $in
    or die "Couldn't open $in";
    
open my $fh_out, '>', $out
    or die "Couldn't open $out";

while( <$fh_in> ) {
    chomp;
    say $fh_out (split)[0];
}

close $fh_in;
close $fh_out;

短版 运行 为 script.pl in_file > out_file

use strict;
use warnings;
use feature 'say';

say ((split)[0]) while <>;

或者使用 perl 一行更短

perl -ane "print qq($F[0]\n)" in_file > out_file