Adicione parênteses em torno dos números

1

Eu tenho um arquivo cheio de números:

1 6 8 9 10 11

Eu quero colocar cada número entre parênteses para que basicamente a saída final seja:

(1) (6) (8) (9) (10) (11)

e assim por diante.

    
por Saiiiiaaafff 18.03.2015 / 19:51

3 respostas

1

Experimente sed :

sed -i.bak 's/[0-9]\+/(&)/g' file.txt

Nesta substituição de sed , estamos substituindo [0-9]\+ , ou seja, dígitos sucessivos com (&) , ou seja, parênteses em torno dos dígitos correspondentes. g significa que esta substituição ocorrerá para todos os padrões correspondentes, caso contrário, ela só substituirá a primeira correspondência.

Após a operação, o arquivo modificado será file.txt e o arquivo original será mantido como file.txt.bak . É uma boa prática fazer backup do arquivo original, se você não quiser fazer backup basta usar:

sed -i 's/[0-9]\+/(&)/g' file.txt
    
por 18.03.2015 / 19:56
0

Usando o Awk para capturar apenas dígitos (não imprimirá linhas vazias):

awk '{for(i=1; i<=NF; i++) if($i ~ /[[:digit:]]/) $i="("$i")"} NF{print}' file
    
por 19.03.2015 / 02:10
0
xargs printf '(%d) ' <infile

Trabalharia para obter resultados como o seu exemplo na pergunta de qualquer série de números com menos de 20 dígitos, uma parte separada por um ou mais espaços brancos por.

    
por 22.03.2015 / 15:07