Найти и заменить текст в крупном файле размером 47 ГБ

Мне нужно найти и заменить задачи на довольно большом файле размером около 47 ГБ.

Кто-нибудь знает, как это сделать? Я пробовал использовать такие сервисы, как TextCrawler, EditpadLite и многое другое, но ничего не поддерживает этот большой файл.

Я предполагаю, что это можно сделать через командную строку.

Есть ли у вас идея, как это можно сделать?

Ответ 1

Sed (редактор потока для фильтрации и преобразования текста) - ваш друг.

sed -i 's/old text/new text/g' file

Sed выполняет преобразования текста за один проход.

Ответ 2

Я использую FART - Найдите и замените текст Лионелло Люнесу.

Он отлично работает на Windows Seven x64.

Вы можете найти и заменить текст, используя следующую команду:

fart -c big_filename.txt "find_this_text" "replace_to_this"

Ответ 3

В Unix или Mac:

sed 's/oldstring/newstring/g' oldfile.txt > newfile.txt

быстро и легко...

Ответ 4

Если вы используете Unix-подобную систему, вы можете использовать cat | sed сделать это

cat hosted_domains.txt | sed s/com/net/g

Пример заменяет com сетью в списке имен доменов, а затем вы можете передать вывод в файл.

Ответ 5

Для меня ни один из предложенных здесь инструментов не работает. Textcrawler съел всю память компьютера, SED не работал вообще, Editpad жаловался на память...

Решение: создайте свой собственный script в python, perl или даже С++.

Или используйте инструмент PowerGrep, это самый простой и быстрый вариант.

Я не пробовал пердеть, это только командная строка и, возможно, не очень дружелюбная.
Некоторые hex-редактор, например Ultraedit, также хорошо работают.

Ответ 6

С sed (редактор потока для фильтрации и текста trasformation) он выполняет преобразование текста за один проход.

sed -i 's/old/new/g' bigfile.txt

Ответ 7

Я использовал

sed 's/[nN]//g' oldfile.fasta > newfile.fasta

чтобы заменить все экземпляры n в моем файле 7Gb.

Если я опустил аспект > newfile.fasta, потребовался возраст, так как он прокручивал экран, показывая мне каждую строку файла.

С > newfile он запустил его в считанные секунды на сервере ubuntu