Есть ли подобная утилита для cmd.exe? [закрыто]

UPDATE: с командой compact и WiredTiger похоже, что дополнительное пространство на диске будет фактически выпущено в OS .


UPDATE: с v1.9 + есть команда compact .

Эта команда выполняет уплотнение «в строке». Это все равно потребуется дополнительное пространство, но не так много.


MongoDB сжимает файлы:

  • копирует файлы в новое место
  • перебирать документы и переупорядочивать / переустанавливать их
  • заменять исходные файлы новыми файлами

Вы можете сделать это «сжатие» на mongod --repair или путем прямого подключения и запуска db.repairDatabase().

В любом случае вам нужно место для копирования файлов. Теперь я не знаю, почему у вас недостаточно места для выполнения компрессии, однако у вас есть некоторые опции, если у вас есть другой компьютер с большим объемом.

  1. Экспорт базы данных в другую компьютер с установленным Mongo (используя mongoexport), а затем вы можете импортировать ту же базу данных (используя mongoimport). Это приведет к сжатию новой базы данных. Теперь вы можете остановить замену оригинала mongod новыми файлами базы данных, и вам хорошо идти.
  2. Остановить текущий mongod и скопировать файлы базы данных на более крупный компьютер и запустить ремонт на этом компьютере , Затем вы можете переместить новые файлы базы данных на исходный компьютер.

В настоящее время нет хорошего способа «сжать на месте» с помощью Mongo. И Mongo может определенно сосать много места.

Лучшей стратегией сейчас для уплотнения является запуск настройки Master-Slave. Затем вы можете сжать Slave, позволить ему догнать и переключить их. Я знаю еще немного волосатого. Может быть, команда Монго придумает лучшее уплотнение на месте, но я не думаю, что это высоко в их списке. В настоящее время пространство на диске считается дешевым (и обычно оно).

142
задан peterh 21 June 2018 в 01:59
поделиться

11 ответов

Работы Cygwin, но эти утилиты также доступны. Просто шлепнитесь их на своем диске, поместите каталог в Ваш путь, и у Вас есть многие Ваши дружественные утилиты Unix. Lighterweight, по моему скромному мнению, что Cygwin (хотя это работает точно также).

1
ответ дан Mark 21 June 2018 в 01:59
поделиться

edlin или редактирование

плюс существуют Windows Services для Unix, который идет со многими инструментами Unix для окон. http://technet.microsoft.com/en-us/interopmigration/bb380242.aspx

Обновление 07.12.12 В Windows 2003 R2, Windows 7 & Сервер 2008, и т.д. вышеупомянутое заменяется Подсистемой для Основанных на UNIX Приложений (SUA) как дополнение. Но необходимо загрузить утилиты: http://www.microsoft.com/en-us/download/details.aspx?id=2391

4
ответ дан Booji Boy 21 June 2018 в 01:59
поделиться
  • 1
    Я думаю you' ре, не учитывающее слишком очень для этого ответа, чтобы быть полезным. Это - только Ваш ScaleGestureListener, что относительно остальных? – Simon Forsberg 23 June 2013 в 12:49

Я использую Cygwin. Я сталкиваюсь с большим количеством людей, которые не понимают, что при помещении двоичных файлов Cygwin на ПУТЬ можно использовать их из Windows Command shell. Вы не должны выполнять Bash Cygwin.

Вы могли бы также изучить Windows Services для Unix, доступного от Microsoft (но только на Профессионале и выше версий Windows).

6
ответ дан Brandon DuRette 21 June 2018 в 01:59
поделиться
  • 1
    я назвал onpinch () и onzoom (), который имеет реализацию pinchzoom на моем customeview, можно реализовать собственное – AMD 24 June 2013 в 06:02

Вы могли установить Cygwin ( http://www.cygwin.com/ ) и использовать sed оттуда.

6
ответ дан robintw 21 June 2018 в 01:59
поделиться
  • 1
    не работа для меня. Дон условий; t когда-либо передают. – MSaudi 29 November 2013 в 07:18

Насколько я знаю, что ничто как sed не связывается окнами. Однако sed доступен для Windows в нескольких различных формах, включая как часть Cygwin, если Вы хотите полную подсистему POSIX, или как собственный исполняемый файл Win32, если Вы хотите работать просто sed на командной строке.

Sed для Windows (Проект GnuWin32)

, Если бы это должно быть собственным к Windows тогда единственная другая вещь, которую я могу предложить, должен был бы использовать язык сценариев, поддерживаемый Windows без дополнений, таких как VBScript.

2
ответ дан Jay 21 June 2018 в 01:59
поделиться

Вы могли посмотреть Инструменты GNU , они обеспечивают (среди других вещей) sed на окнах.

3
ответ дан Linor 21 June 2018 в 01:59
поделиться

UnxUtils обеспечивает sed для Win32, как делает GNUWin32.

23
ответ дан Adam Hughes 21 June 2018 в 01:59
поделиться
  • 1
    Micah - Я не должен был просто вырезать и вставлять, вероятно. Я с тех пор изменил этот класс для взятия в List< string> из имен свойства. – Jason Watts 12 June 2012 в 14:15

sed (и его род) содержатся в нескольких пакетах команд Unix.

  • работы Cygwin, но является гигантским.
  • UnxUtils является намного более тонким.
  • GnuWin32 является другим портом, который работает.
  • Другая альтернатива является AT& T Исследование система UWIN .
  • MSYS от MinGw является еще одной опцией.
  • Windows Subsystem для Linux является самой "собственной" опцией, но это не установлено в Windows по умолчанию; это имеет sed, grep и т.д. из поля, все же.
  • https://github.com/mbuilov/sed-windows предлагает недавние 4,3 и 4,4 версии, которые поддерживают -z опция в отличие от перечисленных верхних портов

, Если Вы не хотите устанавливать что-нибудь, и Ваша система не является Windows Server один, тогда Вы могли использовать язык сценариев (VBScript, например) для этого. Ниже грубый, неподготовленный удар в нем. Ваша командная строка была бы похожа

cscript //NoLogo sed.vbs s/(oldpat)/(newpat)/ < inpfile.txt > outfile.txt

, где oldpat и newpat Microsoft vbscript regex шаблоны . Очевидно, я только реализовал команду замены и предположил некоторые вещи, но Вы могли конкретизировать ее, чтобы быть более умными и понять больше sed командная строка.

Dim pat, patparts, rxp, inp
pat = WScript.Arguments(0)
patparts = Split(pat,"/")
Set rxp = new RegExp
rxp.Global = True
rxp.Multiline = False
rxp.Pattern = patparts(1)
Do While Not WScript.StdIn.AtEndOfStream
  inp = WScript.StdIn.ReadLine()
  WScript.Echo rxp.Replace(inp, patparts(2))
Loop
87
ответ дан b w 21 June 2018 в 01:59
поделиться
  • 1
    Я не думаю, что необходимо назвать основу. CreateProperties, потому что you' ре, не называя новый переопределенный метод you' ve writted (с только принимает только один параметр), таким образом, необходимо было передать 2 параметра вместо просто контракта. – Gui 13 August 2012 в 13:37

Вы могли попробовать powershell. Существуют получать-содержание и содержание набора сборка commandlets, в которой Вы могли использовать.

6
ответ дан James Boother 21 June 2018 в 01:59
поделиться
  • 1
    Это делает то, в чем я нуждаюсь - кроме того, как я могу установить это поведение только для определенных типов классов, или различные наборы свойств включали для различных типов? – Rn222 19 September 2012 в 19:28

Это работает на Vista Ultimate, не уверен насчет Pro.

sed -f commandfilename.cmd file1 > file2
-1
ответ дан 23 November 2019 в 22:59
поделиться

Существует Super Sed расширенная версия sed. Для Windows это автономный .exe, предназначенный для запуска из командной строки.

9
ответ дан 23 November 2019 в 22:59
поделиться
Другие вопросы по тегам:

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