Попробуйте это . Это подключаемый модуль Nagios -в виде Perl-скрипта. Вам не нужно много знать этот язык, чтобы использовать его. Просто запустите его без каких-либо аргументов, чтобы получить помощь. Если он вам не подходит, проверьте другие здесь .
Обратите внимание, :вам может потребоваться установить некоторые пакеты (, особенно perl-библиотеку IBM SVC ), чтобы заставить ее работать.
Попробуйте также этот awk
подход:
awk -F"[ ]" '!(NR%2) {sub (/gene/, "cdc ", $3); $NF = "ID=" $NF} 1' file
NC_002929.2 Seq gene 3653563 3653611. + . Pred285
NC_002929.2 Seq cdc 3653563 3653611. + . ID=Pred285
NC_002929.2 Seq gene 2902987 2903162. - . rgtA
NC_002929.2 Seq cdc 2902987 2903162. - . ID=rgtA
Предполагая, что у вас есть GNU sed с оператором адреса n skip m и что строка gene
не может встречаться нигде перед вторым столбцом:
sed '2~2s/gene/cds/' file.gff
Обратите внимание, что sed не имеет внутренней концепции "столбцов" -2~2
здесь относится к каждой 2-й строке , начиная со 2-й строки , и замена соответствует первое вхождение gene
в строке.
Чтобы применить замену к последнему «столбцу», вам нужно будет сделать что-то вроде сопоставления не -пустых символов, привязанных к концу строки, например.
sed -r '2~2{s/gene/cds/; s/[^[:blank:]]+$/ID=&/;}' file.gff
Если вы хотите что-то действительно ориентированное на столбцы -, попробуйте awk, perl или miller.