Недавно я перешел с Python 3.6 на 3.7. Я совершенно уверен, что завиток работал до этого. Тот факт, что conda install libssh2
устраняет проблему, заставляет меня думать, что обновление python сломало curl. Это может быть объяснением того, что Сэм Х отсутствует, т. е. «...не имеет для меня смысла...».
используя awk, если вы хотите удалить какой бы то ни было символ..
awk -F":" '{ print $1":"$2 }' gokind_SNPs.txt > gokind_SNPs_OUTPUT.txt
Никогда не пытайтесь писать в тот же файл, который вы пытаетесь прочитать:
sed 's/:[A-Z].* / /' gokind_SNPsF.txt > tmp && mv tmp gokind_SNPsf.txt
или используйте sed -i
, если ваша версия sed поддерживает это.
Ваша команда ничего не сделала, потому что используемое вами регулярное выражение пытается сопоставить пробел, которого нет в данных.
Вместо этого используйте
sed 's/:[A-Z].*//' gokind_SNPsF.txt >new-gokind_SNPsf.txt
При этом удаляется весь текст в каждой строке, начиная с первой :
, за которой непосредственно следует заглавная буква. Я также решил ничего не заменять, а не пробелом, и удалил ненужный флаг g
.
Я предполагаю, что вы на самом деле не запустили показанную команду, так как это усекло бы (очистку )вашего файла данных еще до запускаsed
(из-за перенаправление в тот же файл, который вы читаете из ).
Если вы хотите выполнить редактирование в -месте с помощью sed
, используйте sed -i
, но также прочитайте " Как я могу добиться переносимости с помощью sed -i (в -редактирование места )? ".
Чуть более быстрая альтернатива вашей команде sed
—
cut -d: -f -2 gokind_SNPsF.txt >new-gokind_SNPsf.txt
, который просто извлекает первые два:
-поля с разделителями из каждой строки. Вместо -f -2
вы можете использовать -f 1,2
или -f 1-2
, чтобы указать, что вы хотите получить первые два столбца.
Используя awk
, вы должны сделать
awk -F : 'BEGIN { OFS=FS } { print $1, $2 }' gokind_SNPsF.txt >new-gokind_SNPsf.txt
для печати только двух первых полей из каждой строки в новый файл.
В GNU awk
вы могли выполнять редактирование в -месте с помощью
awk -i inplace -F : 'BEGIN { OFS=FS } { print $1, $2 }' gokind_SNPsF.txt
См. " Как изменить файл в -месте с помощью awk? (как с "sed -i")" для получения дополнительной информации об этом.