Предполагая, что 4-й столбец всегда начинается с ID=
, за которым следует идентификатор, за которым следует ;
, и предполагая, что первые 3 столбца не содержат ID=
, вы можете использовать sed
, например,
sed 's/ID=\([^;]*\);.*/\1/' inputfile
Это захватывает последовательность символов, кроме ;
после ID=
. Если идентификатор не всегда завершается символом ;
, вы можете использовать альтернативный шаблон, который ищет последовательность букв alphanumeri c символов
sed 's/ID=\([[:alnum:]]*\).*/\1/' inputfile
Когда я создаю файл inputfile
, который содержит точно Строка из вопроса, я получаю результат
chr1 9734 10486 SRX502813
Если вы хотите извлечь только строки, содержащие ID=SRX
, вы можете объединить это с fgrep
fgrep 'ID=SRX' inputfile | sed 's/ID=\([^;]*\);.*/\1/'