Для сокращения и выполнения всех вещей вы можете использовать раздел раздела Easeus master.you можете скачать его на http://download.cnet.com/EaseUS-Partition-Master-Home-Edition/ 3000-2248_4-10863346.html
Даже если вы можете загрузиться в программу установки livecd, используйте gparted менеджер разделов.
Вы можете использовать программное обеспечение easyBCD для двойной загрузки, пожалуйста, следуйте этому руководству
http://download.cnet.com/EaseUS-Partition-Master-Home-Edition/3000-2248_4-10863346.html
http: // neosmart. net / wiki / display / EBCD / Ubuntu
http://download.cnet.com/EaseUS-Partition-Master-Home-Edition/3000-2248_4-10863346.htmlВ большинстве случаев это будет работать, иногда это может не сработать. В этом случае вы можете следовать этой статье
Другое awk-решение:
$ gawk -F '\n *' -v RS="::=[^\n]*\n*" '{gsub(/[^0-9]/,"", RT); printf "%s\n%s\n", $4, RT}' foo
"Aspi: unable to read the file server hard disk might have problems"
124
"Aspi: database is corrupted"
125
Текст естественно делит на записи, но разделитель записей не очень прост. Это может быть две последовательные строки новой строки. Я решил использовать последнее поле в записи (::= ...), за которым следует сколь угодно много новых строк, в качестве разделителя записей.
Затем для разбиения на поля я использовал новую строку, за которой следует сколь угодно много пробелов , После этого это всего лишь вопрос о печати четвертого поля и извлечении чисел из текста разделителя записей (RT). Поскольку это решение использует RT, это GNU awk-only.
В вашем сценарии вхождения слова можно найти с помощью awk, grep и sed; но вам придется разбить их в сценарии bash с некоторым аргументом case и итерацией. Это может быть сделано. Написание Perl, Python, Java или C ++-программы кажется лучшим способом для этого.
Я просто написал это для вас. Это c ++-программа. Скопируйте и вставьте программу ниже в gedit. Сохраните его как findword.cpp. ПРИМЕЧАНИЕ: вам необходимо построить необходимое для его компиляции.
:~$ sudo apt-get install build-essential -y
:~$ g++ -o findword findword.cpp
Программа:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <locale>
using namespace std;
int main()
{
string wordhold = "";
int index;
string line;
string trptype = "TRAP-TYPE";
ifstream infile;
infile.open("Yourfile.txt"); // change Yourfile.txt to the name of the file
while ( getline(infile, line) ) {
index = line.find('\n');
string holdword = line.substr(0,index);
wordhold = holdword;
if ( wordhold.compare(wordhold.size(),9,trptype) == 0 ) {
system("Execute the command you want inside the quotes");
wordhold = "";
}
else {
wordhold = "";
}
}
infile.close();
cout << "The file is closed\nDone" << endl;
return 0;
}
. Вы можете запускать несколько команд, дублируя системную функцию, которая находится в оператор условия (если).
Чтобы запустить программу, введите каталог, который вы скомпилировали, и выполните его из командной строки.
:~$ ./findword
Удачи.
Использование awk:
< inputfile awk '/DESCRIPTION/ {getline; sub(/^ *"/,""); sub(/"$/,""); print}; /::=/ {sub(/::= */,""); print}'
Расширенная версия:
< inputfile awk '
/DESCRIPTION/ {
getline;
sub(/^ *"/,"");
sub(/"$/,"");
print
};
/::=/ {
sub(/^::= */,"");
print
}
'
/DESCRIPTION/: выбирает только записи, содержащие строку DESCRIPTION getline: пропускает первая запись sub(/^ *"/,""): замените строку, состоящую из любого количества пробелов, за которым следует символ ", в начале строки, с пустой строкой sub(/"$/,""): замените символ " в конце строка с пустой строкой print: печатает запись /::=/: выбирает только записи, содержащие строку ::= sub(/^::= */,""): замените строку, состоящую из ::=, за которой следует любое количество пробелов, в начале строки, с пустой строкой print: печатает запись Версия [[5]]
awk '/TRAP-TYPE/ {traptype=1}; traptype && /DESCRIPTION/ {getline; gsub(/^ +/, "", $0); gsub(/^\"/, "", $0); gsub(/\"\s+$/, "", $0); print}; traptype && /::=/ {print $2}' testfile
Вход
testfile
sCSISmart20 TRAP-TYPE
ENTERPRISE cyclone
DESCRIPTION
"Aspi: unable to read the file server hard disk might have problems"
--#TYPE "Aspi: unable to read the database file"
--#SUMMARY "ASPI: unable to read the file, server hard disk may have problems"
--#ARGUMENTS {}
--#SEVERITY WARNING
--#TIMEINDEX 100
--#STATE OPERATIONAL
--#HELP "scsismrt.hlp"
--#HELPTAG 124
::= 124
sCSISmart21 TRAP-TYPE
ENTERPRISE cyclone
DESCRIPTION
"Aspi: database is corrupted"
--#TYPE "Aspi: database is corrupted"
--#SUMMARY "ASPI: database file is corrupted"
--#ARGUMENTS {}
--#SEVERITY WARNING
--#TIMEINDEX 100
--#STATE OPERATIONAL
--#HELP "scsismrt.hlp"
--#HELPTAG 125
::= 125
Вход
Aspi: unable to read the file server hard disk might have problems
124
Aspi: database is corrupted
125
[ ! d11] Отдельные выходы
awk '/TRAP-TYPE/ {traptype=1}; traptype && /DESCRIPTION/ {getline; gsub(/^ +/, "", $0); gsub(/^\"/, "", $0); gsub(/\"\s+$/, "", $0); print;}' testfile
Aspi: unable to read the file server hard disk might have problems
Aspi: database is corrupted
awk '/sCSISmart.*TRAP-TYPE/ {traptype=1}; traptype && /::=/ {print $2}' testfile
124
125