Você também pode usar awk
:
$ awk -F'/' -vOFS="/" '{print $0,$2}' test1
ch140/121_------_T_201607061430/121_------_T_201607061430
ch140/121_------_T_201611070840/121_------_T_201611070840
ch140/121_------_T_201611071125/121_------_T_201611071125
ch140/121_------_T_201611071235/121_------_T_201611071235
Aqui estou configurando os separadores de campo de entrada ( -F"/"
) e saída ( -vOFS="/"
) para /
. Isso significa que $2
será tudo depois do firt /
e até o próximo /
. Como há apenas um /
por linha, $2
é o texto que você deseja anexar. O script imprimirá cada linha ( $0
) e, em seguida, anexará o segundo campo ( $2
).
Você também pode usar a mesma abordagem em Perl:
$ perl -F"/" -anle 'print "$_/$F[1]"' test1
ch140/121_------_T_201607061430/121_------_T_201607061430
ch140/121_------_T_201611070840/121_------_T_201611070840
ch140/121_------_T_201611071125/121_------_T_201611071125
ch140/121_------_T_201611071235/121_------_T_201611071235
Como alternativa, você pode usar a mesma abordagem de @ sed
answer do Zanna :
$ perl -pe 's#/.*#$&$&#' test1
ch140/121_------_T_201607061430/121_------_T_201607061430
ch140/121_------_T_201611070840/121_------_T_201611070840
ch140/121_------_T_201611071125/121_------_T_201611071125
ch140/121_------_T_201611071235/121_------_T_201611071235