sed, replace globally a delimiter with the first part of the line

后端 未结 3 755
无人及你
无人及你 2021-01-25 13:15

Lets say I have the following lines:

1:a:b:c
2:d:e:f
3:a:b
4:a:b:c:d:e:f

how can I edit this with sed (or perl) in order to read:

1a1b1c
2d2e2f
         


        
3条回答
  •  长发绾君心
    2021-01-25 13:40

    use feature qw/ say /;
    use strict;
    use warnings;
    while(  ) {
        chomp;
        my @elements = split /:/;
        my $interject = shift @elements;
        local $" = $interject;
        say $interject, "@elements";
    }
    
    __DATA__
    1:a:b:c
    2:d:e:f
    3:a:b
    4:a:b:c:d:e:f
    

    Or on the linux shell command line:

    perl -aF/:/ -pe '$i=shift @F;$_=$i.join $i,@F;' infile.txt

提交回复
热议问题