Печать '$' (знак доллара) в файл

Это зависит от приложения, время отклика, необходимое, и что Вы готовы сделать для удовлетворения тем целям.

Недавно, я работал с 10 + ГБ, 50 + миллион текстового файла строки и имел потребность искать определенные строки в каждой строке. Стандартный инструмент Unix "grep" добился цели, но неприемлемо занял много времени (несколько минут). Я импортировал текст в postgreslq DB (это был файл CSV, легко импортированный), и когда-то индексировал на ключе, на котором я должен был искать, потребовалась менее чем 1 секунда для нахождения моей записи.

Предоставленный, моя рабочая станция является одножильной, только с 4 ГБ RAM, 4-летнего 2 ГГц ЦП и завышенной файловой системы (ZFS) использование 5 + потребитель года диски PATA. Ваш пробег будет, конечно, варьироваться. Однако, разница во времени между этими двумя методами колеблется.

Если Ваши данные являются текстом свободной формы, Вы могли бы все еще рассмотреть импорт в DB, который поддерживает полнотекстовый поиск и индексирует соответственно для поддержки таких поисков.

Даже если у Вас будет RAM, чтобы кэшировать весь файл и быструю машину, делая линейный поиск файлов, то этот размер будет время неэффективный, завися (еще раз) от приложения.

2
задан 9 May 2011 в 11:46
2 ответа

Можно использовать printf и одинарные кавычки для предотвращения переменного расширения:

printf '$' > myfile
3
ответ дан 3 December 2019 в 09:45

Из по этой ссылке вы можете использовать метод \ x24, где 24 - шестнадцатеричное значение для знака доллара. Просто эта структура не работает на 100% со строкой, использующей двойные кавычки, поэтому вы, вероятно, захотите использовать одинарные кавычки. Таким образом, этот оператор

echo "Foo "$'\x24'" bar" >> somefile

создаст какой-то файл с содержимым

Foo $ bar
2
ответ дан 3 December 2019 в 09:45

Теги

Похожие вопросы