Возможны два варианта: 1) Найди все строки, в которых есть бла1 или бла2: egrep "бла1\|бла2" 2) Найди все строки, которые содержат и бла1 и бла2: egrep "бла1.*бла2\|бла2.*бла1".
# список файлов с 'blah1'
grep -l 'blah1' ./*.txt > f1
# список файлов с 'blah2'
grep -l 'blah2' ./*.txt > f2
# список файлов с 'blah1' и 'blah2'
grep -wF -f f1 f2 > f1a2
# сам: вывод из списка "f1a2" в нужном формате
Даа, лучше бдсмить бинутилсы же. Сколько лет читаю такие треды, все недоумеваю, почему люди не могут просто взять любой элементарный яп, забрать стпоки из файлов в нормальные структуры данных и делать с ними что душе угодно. Даже если у человека сложности с алгоритмированием, все ваши пастогрепоседоавки можно было сделать модулем на яп и никогда не парить себе мозг, но вы уплетаете непотребное стд легаси, созданное для ручного ввода с консоли, когда больше вообще нихрена не было, и кормите им людей. Чем-то похоже на работу верстальщика css – есть куча мелких блоков, которые не делают что нужно, но если вложить 4 штуки и прописать 50 свойств, то получается почти что надо, осталось только px вручную подобрать. Или как целиком на sql-е пишут бизнес-логику, копируя целые трехстраничные запросы по пять раз в третий уровень вложения, потому что нет элементарного препроцессора или разделения на функции.
На яп задача решается так: идешь по файлам тек.папки, идешь по строкам, если /а|б/, то кладешь строку в массив. Потом массив добиваешь до четного и попарно соединяя, добавляешь имя файла, принтишь. Всё, никаких недокостылей, а с хорошей файл-либой будет строк 10 от силы.
Сколько лет читаю такие треды, все недоумеваю, почему люди не могут просто взять любой элементарный яп, забрать стпоки из файлов в нормальные структуры данных и делать с ними что душе угодно.
Шелл в *nix это и есть ЯП, а не как в венде какое-то говно.
На яп задача решается так: идешь по файлам тек.папки, идешь по строкам, если /а|б/, то кладешь строку в массив. Потом массив добиваешь до четного и попарно соединяя, добавляешь имя файла, принтишь.
Да, на шелле элементарно можно написать такой однострочник.
Всё, никаких недокостылей, а с хорошей файл-либой будет строк 10 от силы.
Шелл простой, а твои ЯП общего назначения - сложные. Но если хочешь, можешь предложить свое решение, пользуясь мощными современными средствами, например на электроне.
awk тоже гуглил, когда всегда 2 есть, то можно сделать, почти пример выше, а если нет второго (что теоретически может быть, но на практике наверное нет), то получается каша
точнее так исхожу - первый если есть, то и второй должен быть (первого может не быть)
На шеле задачи решают пошаговым методом. Один греп, посмотрели результат, добавили еще сед, например, посмотрели и так далее. Если приходим к сложному и трудоемкому решению, переходим на ЯП типа перл, при этом уже имеем наработки что искать и как оно выглядит. Так что всему свое время и место
это все хорошо и замечательно, но зачем этот огород городить, когда мне нужно 2 конкретных значения, все конечно можно сделать вон как анонимус советует еще яп писать
нужно простое решение В СТРОКУ командой, которую я уже отправляю на цикл, а уже он чего надо заливает, без создания файлов из файлов и прочего бреда
wolverin.txt:11 one:22 two
wolverin_broken.txt:b11 one:
wolverin2.txt:1111111 one:22222 two
Есть пара нюансов в плане граничных случаев, когда строки повторяются и т.п., но, поскольку тебе это, видимо, не важно, то я не буду это комментировать.
это все хорошо и замечательно, но зачем этот огород городить, когда мне нужно 2 конкретных значения
Затем, что у тебя «псевдо-XML» а не нормальный текст. У тебя разделитель элементов не newline а < и >. И вообще у тебя в файле вообще может быть всего одна строка, XML же, те кто его пользует любят подобные извращения.
нужно простое решение В СТРОКУ командой, которую я уже отправляю на цикл, а уже он чего надо заливает, без создания файлов из файлов и прочего бреда
Да нет тут нет никаких файлов из файлов, это прямой парсер, он просто по одному XML элементу читает, а не построчно, только и всего. Именно так и надо поступать с XML и псевдо-XML чтобы на потенциальные косяки не напороться.
Тем более, если у тебя всё это в цикл завёрнуто - уже имеет смысл скриптик сделать, а не набирать каждый раз всё в одну строку. А если скриптик - что мешает нормально распарсить XML?