Windows FINDSTR Ubuntu, эквивалентный для поиска .csv

У меня есть папка (Транзакции) с сотнями .csv файлов. Я хочу перерыть все файлы CSV для конкретной строки и получить вывод каждой строки, которая содержит ту строку. Предпочтительно вывод в txt файл. Например, скажем, я хочу найти любую запись, которая содержит имя John Doe. В окнах я использовал бы следующее:

FINDSTR /n /i "John.Doe" *.csv >> johndoe.txt
  • /n дать мне номер строки
  • /i игнорировать регистр
  • "." разделить слова
  • *.csv искать все файлы, которые заканчиваются .csv, и
  • >> производить в новый файл, который содержит все данные, которые включают строку (в ту же папку).

Я ищу подобную команду для использования в Терминале Ubuntu, который перероет все .csv файлы и произведет любые хиты в txt файл. Я изучил grep и awk, но не знаю, как использовать их. Любая справка ценилась бы.Спасибо.

0
задан 18 September 2015 в 01:18

2 ответа

Бесплатное приложение 'CsvFileSearch' сделает точно, что Вы хотите.

http://webmayo.com/csvfilesearch

0
ответ дан 28 July 2019 в 14:51

Я изучил grep и awk, но не знаю, как использовать их.

grep документация имеет много примеров. Первый в разделе Usage демонстрирует нечувствительный к регистру поиск:

Вот команда в качестве примера, которая вызывает GNU grep:

 grep -i 'hello.*world' menu.h main.c

... -i причины опции grep игнорировать регистр, заставляя это соответствовать строке‘Hello, world!’, которому это иначе не соответствовало бы.

И если я ищу line number на вышеупомянутой странице:

-n
--line-number
Prefix each line of output with the 1-based line number within its input file. (-n is specified by POSIX.)

>> foo и *.csv обрабатываются оболочкой (вероятно, как Вы ожидали бы). Так:

grep -in "John.Doe" *.csv >> johndoe.txt

Опции как /i, /n, и т.д. обычно начинайте с дефисов в мире Unix.

1
ответ дан 28 July 2019 в 14:51

Другие вопросы по тегам:

Похожие вопросы: