Я хочу заменить тексты в своем файле

Мне удалось частично решить проблему, поскольку вы сказали, что configureвызывает Python 3, а не Python 2.

Просто перейдите в папку с двоичными файлами cd /usr/binи измените символическую ссылку с Python 3 на Python 2, сохранив резервную копию для восстановления после завершения установки:

sudo mv python python.old
sudo ln -s python2.7 python

Затем вы можете вернуться в папку с пакетом и запустить makeдля создания Dropbox. Когда вы закончите, вы должны вернуть символическую ссылку на Python 3, иначе у вас возникнут проблемы с вашей системой:

cd /usr/bin
sudo mv python.old python

Теперь вам нужно сообщить приложению Dropbox, чтобы оно не переходило по символической ссылке /usr/bin/python, а вместо этого переходило по уже существующей символической ссылке /usr/bin/python2. Для этого просто откройте файл /usr/bin/dropboxв своем любимом текстовом редакторе (, используйте sudo, иначе вы не сможете редактировать его )и измените первую строку с #!/usr/bin/pythonна #!/usr/bin/python2.

Теперь вы сможете запустить API Dropbox, набрав dropbox startбез каких-либо проблем с совместимостью.

-1
29.03.2020, 18:27
4 ответа

Для первой части вы можете попробовать это:

sed 's/_length.*[[:blank:]]\([ACGT]*\)$/ \1/' file

Выход:

NODE_13 GTTGCCTAATATCGCCAATCCAGCTCCT
NODE_24 TATCGCCAATCCAGCTCCT
NODE_36 TGCCTAATATCGCCAATCCAG

Ко второй части:

sed 's/\(^NODE_[0-9]*\)\(_.*\) [ACGT]*$/\1\2 \1/'

Выход:

NODE_13_length_50291_cov_8.067223 NODE_13
NODE_24_length_22118_cov_8.258986 NODE_24
NODE_36_length_15273_cov_5.283743 NODE_36
1
19.03.2021, 02:32

Первый:

sed 's|_length.*[0-9]||g' file.txt

Выход:

NODE_13 GTTGCCTAATATCGCCAATCCAGCTCCT
NODE_25 TATCGCCAATCCAGCTCCT
NODE_36 TGCCTAATATCGCCAATCCAG

Второй:

awk '{print $1,substr ($1,1,7)}' log_file.txt

Выход

NODE_13_length_50291_cov_8.067223 NODE_13
NODE_25_length_22118_cov_8.258986 NODE_25
NODE_36_length_15273_cov_5.283743 NODE_36

Если вы хотите отредактировать файл на месте:

sed -i 's|_length.*[0-9]||g' log_file.txt

awk -i inplace '{print $1,substr ($1,1,7)}' log_file.txt

Чтобы сделать это с awk, у вас должна быть версия 4.2 или выше.

0
19.03.2021, 02:32

Один -вкладыш в GNUawk

awk -v sp="_length_" 'BEGIN {FS=" |"sp }
    {print $1, $3 > "output"; print $1sp$2, $1 > "log"}' file1

Выход

cat output
NODE_13 GTTGCCTAATATCGCCAATCCAGCTCCT
NODE_25 TATCGCCAATCCAGCTCCT
NODE_36 TGCCTAATATCGCCAATCCAG

cat log
NODE_13_length_50291_cov_8.067223 NODE_13
NODE_25_length_22118_cov_8.258986 NODE_25
NODE_36_length_15273_cov_5.283743 NODE_36
0
19.03.2021, 02:32

Пробовал использовать команду «Ниже» и работал нормально

первый выход1

awk '{print substr($1,1,7),$NF}'  filename

output

NODE_13 GTTGCCTAATATCGCCAATCCAGCTCCT
NODE_25 TATCGCCAATCCAGCTCCT
NODE_36 TGCCTAATATCGCCAATCCAG

Второй выход

awk '{print $1,substr($1,1,7)}' filename

выход

NODE_13_length_50291_cov_8.067223 NODE_13
NODE_25_length_22118_cov_8.258986 NODE_25
NODE_36_length_15273_cov_5.283743 NODE_36

метод Python

#!/usr/bin/python
k=open('q.txt','r')
for i in  k:
    j=i.split(' ')
    print j[0][0:7],j[1].strip()
print "\n"
q=open('q.txt','r')
for i in q:
    w=i.split(' ')
    print w[0],w[0][0:7]



output
First output1

NODE_13 GTTGCCTAATATCGCCAATCCAGCTCCT
NODE_25 TATCGCCAATCCAGCTCCT
NODE_36 TGCCTAATATCGCCAATCCAG


Second output

NODE_13_length_50291_cov_8.067223 NODE_13
NODE_25_length_22118_cov_8.258986 NODE_25
NODE_36_length_15273_cov_5.283743 NODE_36
0
19.03.2021, 02:32

Теги

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