Свяжите различные поля с другим разделителем

Можно использовать эту команду для наблюдения вывода рабочего процесса:

tail -f /proc/$PID/fd/1
2
07.11.2014, 03:56
4 ответа

С sed:

$ sed 's/\(.*\)\t\(.*\)\t/\1:\2-/' file

chr1:53736473-54175786
chr1:56861276-56876438
chr1:57512145-57512200

printf:

printf "%s:%s-%s\n" $(< file)

chr1:53736473-54175786
chr1:56861276-56876438
chr1:57512145-57512200
5
27.01.2020, 21:49

Вы можете использовать два SED выражений :

sed -e "s/\t/,/" -e "s/\t/-/" your_file
2
27.01.2020, 21:49

с пасты и Printf :

$ printf '%s\n%s\n%s\n' $(cat file) | paste -sd ':-\n' -
chr1:53736473-54175786
chr1:56861276-56876438
chr1:57512145-57512200
2
27.01.2020, 21:49

Для вашего примера

awk '{print $1":"$2"-"$3}' your_file

будет работать, но он предполагает, что вы всегда будете иметь ровно 3 поля.

5
27.01.2020, 21:49

Теги

Похожие вопросы