LINUX.ORG.RU

Греп

 , ,


0

1

Как вставить в include опцию грепа текстовый файл, иными словами, передавать последовательное ему строку за строкой файла как опцию include грепа?



Последнее исправление: allene533 (всего исправлений: 2)

Ответ на: комментарий от allene533

Так, как ты написал, и не могло сработать: надо не

$(/path/to/txtfile)

а

«$(cat /path/to/txtfile)»

(кавычки в этом контексте обязательны).
Но если у тебя на самом деле большой файл, то можешь нарваться на «командная строка слишком длинна».

ABW ★★★★★
()
5 декабря 2023 г.

По -видимому такое невозможно

grep -rl --include={$(sed 's/\ /,/g' <<< $(basename -a $(grep -Eo 'ht+ps*:/+[[:graph:]]+' /путь/к/файлу)))} '' /путь/к/файлу
echo $?
1
или
a=$(sed 's/\ /,/g' <<< $(basename -a $(grep -Eo 'ht+ps*:/+[[:graph:]]+' /путь/к/файлу)))
grep -rl --include={$a} '' /путь/к/файлу
echo $?
1

Содержимое переменной $a
file1.ext,file2.ext,...,fileN.ext
Странно другое 
grep -rl --include={file1.ext,file2.ext,...,fileN.ext} '' /media/mint/ # а так работает как ни странно.
echo $?
0

P.S символ многоточие(…) к коду отношение не имеет в данном случае это мой символ чтобы не перегружать листинг Никто не знает как исправить положение ?

allene533
() автор топика
Ответ на: комментарий от allene533

В цикле читай текстовик строчка за строчкой и грепай по этим словам.

То есть если у тебя в файле написано

cat
dog
shark

То сперва натрави на слово cat, потом dog, потом shark. Для чего используй такую вещь, как цикл.

Зачем ты весь файл целиком в переменную впихиваешь?

Vsevolod-linuxoid ★★★★★
()
Последнее исправление: Vsevolod-linuxoid (всего исправлений: 1)
Ответ на: комментарий от Vsevolod-linuxoid

Я где-то читал что с for получается очень медленно.

Зачем ты весь файл целиком в переменную впихиваешь? Чтобы не использовать цикл (см выше). А разве так нельзя странно что если файлы целиком пихаю все работает

allene533
() автор топика