Как использовать команду tr на строку в Linux? - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь использовать команду tr для строки внутри текстового файла, чтобы я мог заменить ее символом новой строки.Например, у меня есть такая строка в моем файле

biological_process      GO:0000001      mitochondrion inheritance       is_a    GO:0048308      organelle inheritance

Теперь я хочу преобразовать ее в такую:

biological_process      GO:0000001      mitochondrion inheritance
GO:0048308      organelle inheritance

Я уже использовал команду tr и подумалбудет работать, но теперь, когда я пытаюсь запустить его так, как это

test="biological_process      GO:0000001      mitochondrion inheritance       is_a    GO:0048308      organelle inheritance"
echo $test | tr 'is_a' '\n'
b
olog
c
l
proce

 GO:0000001 m
tochondr
on 
nher
t
nce 

 GO:0048308 org
nelle 
nher
t
nce

1 Ответ

0 голосов
/ 24 мая 2018

tr переводит символы, а не строки.

$ sed 's/is_a/\n/g' <<< "biological_process      GO:0000001      mitochondrion inheritance       is_a    GO:0048308      organelle inheritance"
biological_process      GO:0000001      mitochondrion inheritance       
    GO:0048308      organelle inheritance
$ sed 's/is_a\s\+/\n/g' <<< "biological_process      GO:0000001      mitochondrion inheritance       is_a    GO:0048308      organelle inheritance"
biological_process      GO:0000001      mitochondrion inheritance       
GO:0048308      organelle inheritance
...