Доброго времени суток. Такая ситуация, написал скрипт, который в текущей дир. позволяет искать заданную строку($1) и сохранять где нашел и номера строк в файл(имя файла $2) со строками все прекрасно работает
#!/bin/bash
#$1 последовательсность для поиска
#$2 имя файла результатов
export files=$(ls ./);
files=$(echo -e "$files" | sed "s/num4.sh//");
touch "$2.txt";
for name in $files
do
echo "File name: "$name >> "./$2.txt"
step=$(grep -n -s -i -o "$1" "$name")
# номер строки.под ошибок.игн регистр.поиск только совпавшегокуска
if [[ -n $step ]]
then
step=$(echo "$step" | sed "s%$1%%gi")
step=$(echo "$step" | sed -E "s%:%;%g" )
#регулярка
echo "Pattern was finding in line(s) "$step >> "./$2.txt"
else
echo "Pattern was not finding" >> "./$2.txt"
fi
done
echo "Done! U can see results in same sirectory in file: $2.txt"
возникает проблема с выражениями типа: («^
host1@host1-VB:~/Рабочий стол/4.4$ ./num4.sh (*^ result
bash: синтаксическая ошибка рядом с неожиданным маркером «*^»
host1@host1-VB:~/Рабочий стол/4.4$ ./num4.sh "(*^" result
Done! U can see results in same sirectory in file: result.txt
host1@host1-VB:~/Рабочий стол/4.4$ ./num4.sh "78#@!~?" result
bash: !~?: event not found
Спасибо!