A anexar algum caractere especial no arquivo

4

Eu tenho um arquivo. Eu quero adicionar ' na linha de evry begin.also após a primeira palavra completa eu quero colocar ' novamente e, em seguida, , depois que eu quero repetir a mesma primeira palavra em 'same word' . Como posso fazer isso?

por exemplo.

abc
xyz
pqr
mno

será convertido em

'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'

Eu tenho milhares dessas linhas. Como posso conseguir isso? Eu estou usando o Ubuntu 16.04.

Estou recebendo a saída conforme mostrado abaixo.

Oqueeuqueroé:

Atenciosamente.

    
por Avani badheka 02.05.2017 / 13:44

2 respostas

9

Use sed :

sed "s/.*/'&','&'/" filename

s/foo/bar substitui foo por bar . .* corresponde à linha inteira, & na seção de substituição insere toda a correspondência.

    
por Philippos 02.05.2017 / 13:55
2

Você já recebeu uma resposta sed . Aqui estão algumas alternativas:

awk : definindo aspas simples como variável q (para legibilidade) e out como o registro entre aspas simples e, em seguida, imprimindo out com a formatação desejada:

awk -v q="'" '{out=q$0q; print out","out}'

bash : Lendo cada linha, configurando a variável out para conter a linha entre aspas simples e, finalmente, imprimindo no formato desejado:

while IFS= read -r line; do out="'$line'"; printf '%s,%s\n' "$out" "$out"; done

python : Lendo cada linha e imprimindo no formato desejado usando print() function:

#!/usr/bin/env python3
with open('file.txt') as f:
    for line in f:
        line = line.rstrip()
            print("'{}','{}'".format(line, line))

perl : Substituindo cada linha ( .* ) pela formatação adequada, $& na substituição representa a parte correspondida, neste caso, a linha inteira:

perl -pe "s/.*/'$&','$&'/" 

Exemplo:

% cat file.txt 
abc
xyz
pqr
mno

% awk -v q="'" '{out=q$0q; print out","out}' file.txt
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'

% while IFS= read -r line; do out="'$line'"; printf '%s,%s\n' "$out" "$out"; done <file.txt
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'

% perl -pe "s/.*/'$&','$&'/" file.txt
'abc','abc'
'xyz','xyz'
'pqr','pqr'
'mno','mno'
    
por heemayl 02.05.2017 / 16:07