Як шукати кілька рядків у будь-якому порядку в декількох рядках?


0

Я працюю у великій кодовій базі і хочу побачити, де використовуються окремі рядки, такі як "foo" та "bar", у межах n рядків один одного, у будь-якому файлі цієї кодової бази.

В ідеалі я б використовував вбудовану команду Unix, але сценарій Python теж був би в порядку. (Перл чи Рубі не були б великими).


Чи можете ви навести приклад?
slhck

Python Script, FTW!
James T Snell

Відповіді:


0

Шукаєте fooі barв межах 5 рядків один одного:

grep -C5 foo inputfile | grep bar > outputfile

Додати копіювання для 'великої бази кодів':

find /my/codebase/path -type f -print0 | xargs -0 grep -C5 foo | grep bar > outputfile

Якщо у вас є "grep -C5 foo inputfile | grep bar> outputfile", в кінцевому рахунку буде відображатися / показувати рядки з рядком. Як щодо додавання -C5 між grep та bar. Отже | grep -C5 бар, який, ймовірно, працює краще, ніж ваша версія.
барлоп

Так, спрацьовує з додаванням барлопу ... але все ж не зовсім те, що хотілося б.
wn-
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.