@warnerbrowsers

Как отредактировать множество текстовых файлов?

Добрый день!Помогите с задачей.Есть каталог с большим количеством однотипных текстовых файлов (порядка 450).В каждом требуется удалить некоторый pattern1,поменять pattern2 на pattern3.Для одного файла я нашёл,как делать.Как организовать программу,чтобы она последовательно делала эти действия для всех файлов в каталоге?И вторая часть задачи:после всех этих преобразований надо дописать второй файл в конец первого,третий в конец получившегося и т.д.Подскажите,где можно найти идею решения.
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 5
@pcdesign
perl -pi~ -e 's/foo/bar/g' *.html

Ну вот например однострочник.
Подменяет foo на bar во всех файлах с расширением .html.

Ваша задача решается в 3 однострочника.

P.S. И этот однострочник так же сохраняет оригиналы файлов с именами html~.
Ответ написан
Комментировать
shaks
@shaks
эм..
1. получить список файлов
2. в цикле по ним пройтись
3. дописать "второй файл в конец первого,третий в конец получившегося и т.д."
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Длинный но однострочный PowerShell
Foreach ($i in (Get-ChildItem D:\test\*.txt)) {(Get-Content $i) -replace "pattern1","" -replace "pattern2","pattern3" | Out-File D:\test\out.txt -Append}


D:\test - папка в которой лежат файлы
*.txt - маска файла
D:\test\out.txt - общий склеенный файл после всех правок
Ответ написан
@ShamblerR
Если линукс то можно просто на sh
<code>find /ПАПКА_ОТ КОТОРОЙ_ИСКАТЬ -type f -name "*.html" -exec sed -i 's/FOO/BAR/g' "{}" \;</code>
Ответ написан
Комментировать
@dionys
Достаточно такого однострочника:

perl -p -e 's/foo/bar/g' *.txt > result.txt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы