Não é possível acrescentar o sinal de cotação no terminal de saída para a sequência de deslocamento

0

Tenho os seguintes endereços de deslocamento salvos dentro de um arquivo colocado na área de trabalho.

eagle@max-pc:~$cat ~/Desktop/offset.txt 
0x00000000
0x00000419
0x0000073d
0x00000a24
0x000011cf
0x0000139c
...

Agora eu quero adicionar aspas no final de cada endereço de deslocamento usando terminal, sempre que eu tentar minha saída alterada em

eagle@max-pc:~$for i in 'cat ~/Desktop/offset.txt '; do echo $i"\"";done

saída agora,

"x00000000
"x00000419
"x0000073d
"x00000a24
"x000011cf
"x0000139c
"x00001568

você pode, por favor, me guiar onde eu estou fazendo errado? Eu tentei vários métodos, incluindo diferentes combinações de eco e argumentos, printf.

    
por Muhammad Abdullah 08.01.2015 / 12:33

1 resposta

1

Você poderia simplesmente usar sed.

sed 's/$/"/' ~/Desktop/offset.txt

$ corresponde ao final de uma linha. Então, substituindo o limite que existe no último com aspas duplas, você terá a saída desejada.

Exemplo:

$ echo '0x00000000
> 0x00000419' | sed 's/$/"/'
0x00000000"
0x00000419"

Adicione a edição em linha -i paramter para salvar as alterações feitas no arquivo.

sed -i 's/$/"/' ~/Desktop/offset.txt

Alguns outros métodos no awk.

$ echo '0x00000000
0x00000419' | awk '{$0=$0"\""}1'
0x00000000"
0x00000419"
$ echo '0x00000000
0x00000419' | awk '{sub(/$/, "\"")}1'
0x00000000"
0x00000419"
$ echo '0x00000000
0x00000419' | awk '{print $0"\""}'
0x00000000"
0x00000419"

OR

while read -r i; do sed 's/$/"/' <<< "$i"; done < ~/Desktop/offset.txt
    
por Avinash Raj 08.01.2015 / 12:41