LINUX.ORG.RU

[bash] Помогите написать скрипт

 


0

0

Что то ума не хватает как сделать следующую конструкцию:

cat file 
if в файле содержится фраза x или k или a then
действие1
else if в файле содержится фраза y или g или s then
действие2
else if в файле содержится фраза z или r или h then
действие3
else
действие4

Файл состоит из одной строки, искать совпадение фразы нужно в ней. Как такое реализовать?
anonymous

Может проще подойти с другого конца - вытащить список файлов, содержащих искомые вхождения grep-ом с опцией -l, и потом уже делать с ними задуманное?

anonymous
()

if cat file|grep <x> || cat file | grep <k> || cat file | grep a; then
действие1;
elif cat file|grep <y> || cat file | grep <g> || cat file | grep <s>; then действие2;
elif cat file|grep <z> || cat file | grep <r> || cat file | grep <h>; then действие3;
else действие4; fi

x3al ★★★★★
()

Что-нибудь типа:

case `cat file | grep -o 'x|k|a|...'` in
	x|k|a) action1;;
	...
	*) action4;;
esac

anonymous
()

Можно примерно так:

if [[ `grep -E -i '($X|$K)' $F` ]] ; then echo true; else echo false; fi

, где $X и $K - фразы для поиска, $F - файл.

TuxR ★★★★
()

awk '/x|k|a/ {system("действие1");exit}
     /y|g|s/ {system("действие2");exit}
     /z|r|h/ {system("действие3");exit}
             {system("действие4");exit}'

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.