В вашем сценарии вхождения слова можно найти с помощью 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
Удачи.