Existe um comando que pode fazer o contrário do que o comando paste faz?

6

O comando paste pode mesclar várias linhas em uma. Por exemplo, se eu tiver um arquivo test.txt e ele contiver:

texto original

a
aa
aaa
b
bb
bbb
c
cc
ccc

Eu posso usar o comando paste -s -d '\t\t\n' test.txt para obter:

resultado processado

a   aa  aaa
b   bb  bbb
c   cc  ccc

Eu quero saber se existe um comando reverso que pode fazer o contrário de colar. Por exemplo, se eu tiver "processado o resultado", como posso obter "texto original"?

    
por Ogrish Man 08.09.2016 / 10:04

3 respostas

8

Não há comando padrão.

Você deve fazer você mesmo e depende da sua opinião.

Neste caso:

tr '\t' '\n' <pasted_file.txt

lhe dará o original.

Tenha em atenção que \t não aparece no seu ficheiro original.

    
por 08.09.2016 / 10:15
2

Você pode usar esse comando sed no seu resultado processado

sed -e 'y/\t/\n/' processedresult.txt
    
por 08.09.2016 / 10:15
0

Você pode substituir o caractere por sed ou caractere por tr:

sed -e 's/< old string >/< new string >/g' input-file > output-file

s para substituir e g para substituir cada ocorrência do < string antiga > em uma linha. Sem g, a substituição será feita apenas uma vez por linha.

tr '< old char >' '< new char >' < input-file > output-file
    
por 08.09.2016 / 10:29