Mam ogromny (70 GB), jeden wiersz , plik tekstowy i chcę w nim zastąpić ciąg (token). Chcę zastąpić token <unk>innym tokenem zastępczym ( problem z rękawiczkami ).
Próbowałem sed:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
ale plik wyjściowy corpus.txt.newma zero bajtów!
Próbowałem także użyć perla:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
ale wystąpił błąd braku pamięci.
W przypadku mniejszych plików działają oba powyższe polecenia.
Jak mogę zamienić ciąg znaków na taki plik? To powiązane pytanie, ale żadna z odpowiedzi nie zadziałała dla mnie.
Edycja : Co powiesz na podzielenie pliku na części po 10 GB (lub cokolwiek innego) i zastosowanie seddo każdego z nich, a następnie scalenie ich cat? Czy to ma sens? Czy istnieje bardziej eleganckie rozwiązanie?
splitz -bopcją definiowania wielkości plików porcji w bajtach. Przetwarzaj każdy po kolei za pomocą sedi ponownie złóż. Istnieje ryzyko, że <unk>można je podzielić na dwa pliki i nie można ich znaleźć ...