Знайти персонажа в рядку?


0

Я намагаюся знайти якийсь символ у файлі, використовуючи find або findstr, наприклад вміст файлу, наприклад:

"/test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt; abc _test1"
"/test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt; abc .test2 "
" /test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt; (abc) test3 "
" /test/abctest/abci.txt = c: \ abctest \ tst \ work \ workt.txt; abc _test4 "

... так далі ...
Я хочу знайти у файлі останню "abc" (жирну частину).
Цей файл дуже великий, тому я не хочу використовувати жоден цикл "for" для пошуку символу.
Чи можете ви запропонувати мені будь-яке рішення?


Я збентежений. Я читав це питання і сказав собі, «OP хоче останнім входження в abc в кожному рядку .» Але тепер хто - то дав вам спосіб знайти останню рядок , що містить збіг, і ви , здається, подобається.
Скотт

Що ви хочете статися, коли його знайдуть?
BDM

Відповіді:


0

Якщо ви готові встановити пакет інструментів Unix, наприклад Cygwin, ви можете скористатися командою tac (навпроти "cat") - вона прочитає / відобразить файл назад. Тоді ви можете передати це в findstr (або grep), щоб отримати останню відповідну рядок з файлу. Деяка версія хвоста підтримує перемикач -r, який також змінює порядок рядків у файлі.

Якщо це не зрозуміло, залиште мені коментар, і я докладно.

ОНОВЛЕННЯ: Інструменти Unix доступні для використання під Windows, якщо встановити один із них: cygwin , unxutils , coreutils . Дотримуйтесь цих посилань, щоб встановити те чи інше, і тоді ви отримаєте те, що вам потрібно. FYI, CygWin, здається, є найпопулярнішим і тим, що я використовую.


Дякую за відповідь !! Я використовую Windows 2007. Чи можете ви, будь ласка, запропонуйте мені для Windows OS.
користувач202968

Див. ОНОВЛЕННЯ, щоб відповісти на використання цього рішення під Windows.
йош м
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.