Как обрабатывать grep в текстовом файле? - PullRequest
0 голосов
/ 18 июня 2020

В качестве нового ie в сценариях оболочки bash я пытаюсь понять, как справиться с 3 различными ситуациями с помощью grep. В этом скрипте у меня есть два параметра (один текстовый файл, одна переменная). В этом скрипте мне нужно:

1) найти и показать номер каждой строки, которая начинается с данной переменной

2) найти и показать номер каждой строки, содержащей данную переменную

3) найти и показать номер каждой строки, которая заканчивается заданной переменной

Текстовые данные:

unix is great os. unix is opensource. unix is free os.
learn operating system.
Unix linux which one you choose.
uNix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.

Написанный сценарий:

#!/bin/bash
echo "Give a string."
read variable
file="/home/mikepnrs/data.txt"

grep -n "^$variable" $file
echo "Lines starting with: $variable" grep -c "^$variable" $file
grep -n "$variable" $file
echo "Lines containing : $variable" grep '$[variable]*$' file
grep -n "$variable$" $file
echo "Lines ending with : $variable" grep -c "$variable$" file

Учитывая "un" в качестве аргумента переменной, я получаю следующие результаты. Первый ответ, кажется, работает нормально, но я не могу понять, что делаю не так с остальными.

1:unix is great os. unix is opensource. unix is free os.
Lines starting with : un grep -c ^un /home/mikepnrs/data.txt                                                                                                                                                                               
1:unix is great os. unix is opensource. unix is free os.
4:uNix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.
Lines containing : un grep $[variable]*$ file
Lines ending with : un grep -c un$ file

Есть мысли?

...