Найти строку в начале всех строк в файле и сохранить в другой файл

321
JAH

Я перепробовал немало вариантов, но безуспешно. Я действительно хотел бы сделать это как командный файл, но мои попытки не дают желаемого результата.

Я пробовал много разных команд, findstrно кажется, что все записано одной большой строкой, и иногда персонажи выглядят странно.

Одна из моих неудачных попыток

findstr /i /n "\<JH*\>" c:\Users\Desktop\split\file.txt > JH.tx 

Мне нужно найти все записи в одном .csvфайле, который начинается с " JH " и сохранить только те, в новый .csvфайл.

Пример файла CSV для поиска

JH009,20,John May.pdf PB184,90,Chicken.pdf JH024,10,Fred Walmsley.pdf JH080,12,Now Call.pdf  PB091,10,Mice.pdf PB884,1040,Cat Order.pdf 

Ожидаемый результат в новом выходном CSV-файле

JH009,20,John May.pdf  JH024,10,Fred Walmsley.pdf JH080,12,Now Call.pdf 
0
Можете ли вы привести примеры того, что вы уже пробовали, и какой был результат? Это поможет нам избежать предложений о том, что вы уже пробовали, и может помочь нам определить, почему это не работает для вас. PS: Хотя вы говорите, что хотите сделать это в пакетном режиме, в PowerShell встроены средства обработки CSV, вам следует попробовать это. :) Ƭᴇcʜιᴇ007 6 лет назад 1
findstr / i / n "\"c: \ Users \ Desktop \ split \ file.txt> JH.txt JAH 6 лет назад 0

1 ответ на вопрос

0
Pimp Juice IT

Вы можете использовать команду Findstr с /Bпереключателем, чтобы указать ей соответствие шаблону в начале строк в файле, который вы ищете. Если шаблон не должен быть чувствительным к регистру, используйте /Iпереключатель или просто пропустите его из команды для совпадения шаблона с учетом регистра в строке.

Синтаксис

FindStr /I /B "JH" "c:\Users\Desktop\split\file.txt" > "JH.csv" 

Поиск файла

JH009,20,John May.pdf PB184,90,Chicken.pdf JH024,10,Fred Walmsley.pdf JH080,12,Now Call.pdf PB091,10,Mice.pdf PB884,1040,Cat Order.pdf 

Вывод команды FindStr

JH009,20,John May.pdf JH024,10,Fred Walmsley.pdf JH080,12,Now Call.pdf 

Дополнительные ресурсы

  • Findstr

  • FindStr /?

    /B Matches pattern if at the beginning of a line.  /I Specifies that the search is not to be case-sensitive. 

    Example: FindStr /I /B "<String>" "<FileToSearch>" > "<OutputFile>" 
  • Перенаправление

Привет, я только что попробовал скопировать и вставить ваш синтаксис, и он создал файл .CSV, но он пуст? JAH 6 лет назад 0
Не волнуйтесь, все разобрались, спасибо еще раз JH JAH 6 лет назад 0