Если это компьютер Acer, вы должны следовать процедуре здесь: Acer Aspire E15 не будет работать с двойной загрузкой. Если Ubuntu уже установлен, вам нужно просто выполнить шаги от 2 до 16 (не все из них, только то, что находится в вашей BIOS и отличается от того, что там написано), и, самое главное, шаги от 34 до 43. На шаге 40 есть небольшая ошибка, вам нужно написать grubx64efi без точки.
Вы также должны сделать это для работы сенсорной панели, если это ноутбук Acer Aspire E15 не будет двойной загрузки
Ok позволяет попробовать этот маленький скрипт, который я создал:
#!/usr/bin/env bash
set -e
match1=/home/george/Documents/askubuntu/matchme/match1
match2=/home/george/Documents/askubuntu/matchme/match2
# Create the result file
touch results.txt
while read -r word
do
if [[ "$word" = $(grep -o "$word" "$match1") ]]; then
if [[ "$word" != $(grep -o "$word" "results.txt") ]]
then
grep "$(grep "$word" "$match1" | grep -o "[[:digit:]]..$")" "$match1" >> "results.txt"
while read -r new
do
if [[ "$new" =~ $word ]]; then
# Replace the words
sed -i "s/$word/$new/" "results.txt"
fi
done < <(grep -o "$word_.*\." "$match2" | sed -e 's/\.//')
# Add space between results
echo " " >> "results.txt"
fi
fi
done < <(cut -d"_" -f1 "$match2")
# Remove last blank line from the results file
sed -i '$ d' results.txt
Объяснение:
match1: содержит источник фильтра match2: содержит критерии фильтра : остановить сценарий возникает ошибка (grep -o "$word_.*\." "$match2" | sed -e 's/\.//'): прочитать файл фильтра и захватить имена до расширения pdbОписание процесса команды:
Использование cut команда получает критерии фильтра из файла match2 (1KBA, 1A3L, 1F94, 1A3U, 1A3V, 1A4H), затем читает из результата команды cut и находит совпадения в файле источников match1, если найдено совпадение grep для этого блока в исходном файле и отправить или распечатать новый файл result.txtПРИМЕЧАНИЕ: Пожалуйста, измените имена и другие параметры на свой вкус.
ПРИМЕЧАНИЕ:
$cat results.txt
3LKB_BUNMU Bungarus multicinctus P01398 PDB; 1KBA_GAL; X-ray; 2.30 A; A/B=22-87.
PDB; 2NBT; NMR; -; A/B=22-87.
3NOJ_BUNCA Bungarus candidus P81782 PDB; 1F94_; X-ray; 0.97 A; A=1-63.
PDB; 1IJC; NMR; -; A=1-63.
Ok позволяет попробовать этот маленький скрипт, который я создал:
#!/usr/bin/env bash
set -e
match1=/home/george/Documents/askubuntu/matchme/match1
match2=/home/george/Documents/askubuntu/matchme/match2
# Create the result file
touch results.txt
while read -r word
do
if [[ "$word" = $(grep -o "$word" "$match1") ]]; then
if [[ "$word" != $(grep -o "$word" "results.txt") ]]
then
grep "$(grep "$word" "$match1" | grep -o "[[:digit:]]..$")" "$match1" >> "results.txt"
while read -r new
do
if [[ "$new" =~ $word ]]; then
# Replace the words
sed -i "s/$word/$new/" "results.txt"
fi
done < <(grep -o "$word_.*\." "$match2" | sed -e 's/\.//')
# Add space between results
echo " " >> "results.txt"
fi
fi
done < <(cut -d"_" -f1 "$match2")
# Remove last blank line from the results file
sed -i '$ d' results.txt
Объяснение:
match1: содержит источник фильтра match2: содержит критерии фильтра set -e: остановить сценарий возникает ошибка (grep -o "$word_.*\." "$match2" | sed -e 's/\.//'): прочитать файл фильтра и захватить имена до расширения pdbОписание процесса команды:
Использование cut команда получает критерии фильтра из файла match2 (1KBA, 1A3L, 1F94, 1A3U, 1A3V, 1A4H), затем читает из результата команды cut и находит совпадения в файле источников match1, если найдено совпадение grep для этого блока в исходном файле и отправить или распечатать новый файл result.txtПРИМЕЧАНИЕ: Пожалуйста, измените имена и другие параметры на свой вкус.
ПРИМЕЧАНИЕ:
$cat results.txt
3LKB_BUNMU Bungarus multicinctus P01398 PDB; 1KBA_GAL; X-ray; 2.30 A; A/B=22-87.
PDB; 2NBT; NMR; -; A/B=22-87.
3NOJ_BUNCA Bungarus candidus P81782 PDB; 1F94_; X-ray; 0.97 A; A=1-63.
PDB; 1IJC; NMR; -; A=1-63.
Ok позволяет попробовать этот маленький скрипт, который я создал:
#!/usr/bin/env bash
set -e
match1=/home/george/Documents/askubuntu/matchme/match1
match2=/home/george/Documents/askubuntu/matchme/match2
# Create the result file
touch results.txt
while read -r word
do
if [[ "$word" = $(grep -o "$word" "$match1") ]]; then
if [[ "$word" != $(grep -o "$word" "results.txt") ]]
then
grep "$(grep "$word" "$match1" | grep -o "[[:digit:]]..$")" "$match1" >> "results.txt"
while read -r new
do
if [[ "$new" =~ $word ]]; then
# Replace the words
sed -i "s/$word/$new/" "results.txt"
fi
done < <(grep -o "$word_.*\." "$match2" | sed -e 's/\.//')
# Add space between results
echo " " >> "results.txt"
fi
fi
done < <(cut -d"_" -f1 "$match2")
# Remove last blank line from the results file
sed -i '$ d' results.txt
Объяснение:
match1: содержит источник фильтра match2: содержит критерии фильтра set -e: остановить сценарий возникает ошибка (grep -o "$word_.*\." "$match2" | sed -e 's/\.//'): прочитать файл фильтра и захватить имена до расширения pdbОписание процесса команды:
Использование cut команда получает критерии фильтра из файла match2 (1KBA, 1A3L, 1F94, 1A3U, 1A3V, 1A4H), затем читает из результата команды cut и находит совпадения в файле источников match1, если найдено совпадение grep для этого блока в исходном файле и отправить или распечатать новый файл result.txtПРИМЕЧАНИЕ: Пожалуйста, измените имена и другие параметры на свой вкус.
ПРИМЕЧАНИЕ:
$cat results.txt
3LKB_BUNMU Bungarus multicinctus P01398 PDB; 1KBA_GAL; X-ray; 2.30 A; A/B=22-87.
PDB; 2NBT; NMR; -; A/B=22-87.
3NOJ_BUNCA Bungarus candidus P81782 PDB; 1F94_; X-ray; 0.97 A; A=1-63.
PDB; 1IJC; NMR; -; A=1-63.
Я предлагаю использовать awk в режиме абзаца, например
awk 'NR==FNR {
sub(/_[^_]*$/,"",$1); a[$1]++; next
}
{
for (x in a) {
if ($0 ~ "PDB; "x) {print; break;}
}
}' file2 RS= file1
Пример:
$ awk 'NR==FNR {sub(/_[^_]*$/,"",$1); a[$1]++; next} {for (x in a) {if ($0 ~ "PDB; "x) {print; break;}}}' file2 RS= file1
3LKB_BUNMU Bungarus multicinctus P01398 PDB; 1KBA; X-ray; 2.30 A; A/B=22-87.
PDB; 2NBT; NMR; -; A/B=22-87.
3NOJ_BUNCA Bungarus candidus P81782 PDB; 1F94; X-ray; 0.97 A; A=1-63.
PDB; 1IJC; NMR; -; A=1-63.
Если вы хотите, чтобы пустая line после каждого блока, вы можете изменить {print; break;} на {print $0"\n"; break;} или {printf "%s\n\n", $0; break}, хотя обратите внимание, что после последней записи будет добавлена конечная пустая строка, где, возможно, не было одной из них - если у вас есть GNU awk (gawk ]), вы можете избежать этого, обратившись к специальной переменной RT, которая содержит фактический разделитель для каждой записи, т.е. {printf "%s%s", $0, RT; break;}
Я предлагаю использовать awk в режиме абзаца, например
awk 'NR==FNR {
sub(/_[^_]*$/,"",$1); a[$1]++; next
}
{
for (x in a) {
if ($0 ~ "PDB; "x) {print; break;}
}
}' file2 RS= file1
Пример:
$ awk 'NR==FNR {sub(/_[^_]*$/,"",$1); a[$1]++; next} {for (x in a) {if ($0 ~ "PDB; "x) {print; break;}}}' file2 RS= file1
3LKB_BUNMU Bungarus multicinctus P01398 PDB; 1KBA; X-ray; 2.30 A; A/B=22-87.
PDB; 2NBT; NMR; -; A/B=22-87.
3NOJ_BUNCA Bungarus candidus P81782 PDB; 1F94; X-ray; 0.97 A; A=1-63.
PDB; 1IJC; NMR; -; A=1-63.
Если вы хотите, чтобы пустая line после каждого блока, вы можете изменить {print; break;} на {print $0"\n"; break;} или {printf "%s\n\n", $0; break}, хотя обратите внимание, что после последней записи будет добавлена конечная пустая строка, где, возможно, не было одной из них - если у вас есть GNU awk (gawk ]), вы можете избежать этого, обратившись к специальной переменной RT, которая содержит фактический разделитель для каждой записи, т.е. {printf "%s%s", $0, RT; break;}
Я предлагаю использовать awk в режиме абзаца, например
awk 'NR==FNR {
sub(/_[^_]*$/,"",$1); a[$1]++; next
}
{
for (x in a) {
if ($0 ~ "PDB; "x) {print; break;}
}
}' file2 RS= file1
Пример:
$ awk 'NR==FNR {sub(/_[^_]*$/,"",$1); a[$1]++; next} {for (x in a) {if ($0 ~ "PDB; "x) {print; break;}}}' file2 RS= file1
3LKB_BUNMU Bungarus multicinctus P01398 PDB; 1KBA; X-ray; 2.30 A; A/B=22-87.
PDB; 2NBT; NMR; -; A/B=22-87.
3NOJ_BUNCA Bungarus candidus P81782 PDB; 1F94; X-ray; 0.97 A; A=1-63.
PDB; 1IJC; NMR; -; A=1-63.
Если вы хотите, чтобы пустая line после каждого блока, вы можете изменить {print; break;} на {print $0"\n"; break;} или {printf "%s\n\n", $0; break}, хотя обратите внимание, что после последней записи будет добавлена конечная пустая строка, где, возможно, не было одной из них - если у вас есть GNU awk (gawk ]), вы можете избежать этого, обратившись к специальной переменной RT, которая содержит фактический разделитель для каждой записи, т.е. {printf "%s%s", $0, RT; break;}