Используйте sed (или другую командную строку), чтобы заменить набор символов другим набором

Мне нужно инвертировать текстовую строку ДНК, заменив все A на T, T на A, C-> G и G-> C.

Могу ли я элегантно справиться с этим в sed (или другой командной строке) без целой цепочки команд глобальной замены sed?


person Rich    schedule 16.08.2010    source источник
comment
@OMG Ponies sed может изменить источник, если пользователь, выполняющий команду, имеет права редактирования, и вы используете переключатель «-i» для редактирования на месте.   -  person coffeepac    schedule 16.08.2010


Ответы (2)


вот как вы это делаете с sed

$ echo "test ATCG GATC test" | sed 'y/ATCG/TAGC/'
test TAGC CTAG test
person ghostdog74    schedule 16.08.2010
comment
интересно, не знал о опции y для sed - person frankc; 17.08.2010

использовать файл tr.
cat | tr ATCG TAGC

person frankc    schedule 16.08.2010
comment
О, отлично, это как раз то, что я искал. Изначально у меня было решение, в котором я заменял все A и G на какой-то другой символ (X и Y), а затем выполнял еще один проход, в котором я менял все обратно, но это казалось глупым. Спасибо за помощь. - person Rich; 16.08.2010
comment
намного выше? не совсем. И УУОК. tr ATCG TAGC < file - person ghostdog74; 16.08.2010