Concatindo campos e removendo espaços em branco à direita em uma linha

1

Eu tenho uma string com 3 campos separados por espaço em branco. Gostaria de concatenar os dois últimos campos com - , certificando-se de que a nova linha no final seja removida.

Os seguintes trabalhos:

echo -n "abc 1234 5679" | tr -s "" |cut -d ' ' -f2 -f3 | tr " " "-"  

Eu queria saber se existe um perl onliner para isso?

    
por Jim 29.03.2018 / 10:35

2 respostas

2

Usando awk :

printf 'abc 1234 5679' | awk '{printf "%s", $2"-"$3}'

ou perl ' awk mode ( -a ):

printf 'abc 1234 5679' | perl -ape '$_ = "$F[1]-$F[2]"'

Observe que ambos removeriam o delimitador de linha, se presente, se você quiser preservá-lo, se estiver lá, com GNU awk :

printf 'abc 1234 5679\n' | gawk '{printf "%s", $2"-"$3 RT}'

com perl :

printf 'abc 1234 5679\n' | perl -ape 's/.*/$F[1]-$F[2]/'
    
por 29.03.2018 / 15:23
2

Use isto:

$ echo -n "abc 1234 5679" | perl -pe 's/(\d+)\s+(\d+)$/$1-$2/' 
    
por 29.03.2018 / 14:59

Tags