Я ищу эквивалент команды «хвост» unix, которая позволит мне наблюдать за выходом файла журнала во время его написания.Экземпляр окна команды unix tail
ответ
Я предлагаю установить что-то вроде GNU Utilities for Win32. У него есть большинство фаворитов, включая хвост.
Вы можете получить хвост как часть Cygwin.
Я использовал Tail For Windows. Конечно, не так элегантно, как с использованием
tail, но затем вы используете Windows. ;)
Я не считаю, что ваше влечение в том, что элегантность стороннего инструмента зависит от операционной системы на очень полезно. Конечно, наличие графической версии «хвоста» не более или менее элегантно, поскольку альтернативы командной строки предлагают другие ответы. – 2008-10-09 15:36:44
Наличие графической версии менее элегантно, потому что есть накладные расходы при открытии приложения, графическом выборе файла и ручном включении мониторинга. В командной строке это всего лишь несколько нажатий клавиш. Это то, что я имел в виду. Тангенциально, нет, я бы не назвал Windows «элегантным». – Jake 2008-10-09 16:11:58
Существует графическая неэлесная программа для окон, которая делает это => окна не изящны. Отличная логика! Особенно, когда и powershell, и набор ресурсов, которые предоставляются Microsoft, поддерживают элегантную версию функциональности ... – Cray 2011-12-06 23:35:33
Если вы хотите использовать Win32-порты некоторых утилит Unix (вместо установки Cygwin), я рекомендую GNU utilities for Win32.
Более легкий вес, чем Cygwin и более портативный.
Я всегда использовал Baretail для хвоста в Windows. Это бесплатно и довольно приятно.
Edit: для лучшего описания BareTail см this question
Попробуйте Windows Services for UNIX. Предоставляет оболочки, awk, sed и т. Д., А также хвост.
Если вы не хотите ничего устанавливать, вы можете «создать собственный» пакетный файл, который выполняет задание из стандартных команд Windows. Вот несколько указаний относительно того, как это сделать.
1) Используя find/c/v "" yourinput.file, получите количество строк в вашем входном файле. Выход что-то вроде:
---------- T.TXT: 15
2) Использование для/ф, разобрать этот выход, чтобы получить число 15.
3) Используя набор/A, вычислить количество головных линий что необходимо пропустить
4) Использование для/f "skip = n" пропустить линии головы и эхо/обработать хвостовые линии.
Если я найду время, я создам такой пакетный файл и отправлю его сюда.
Windows - такая радость. Я был в Unix, когда DOS сначала «подошел» с подкаталогами, и ему было неловко видеть, как они используют \ для разделителя путей вместо/(как и предназначил Бог). Это было предзнаменованием для всей несовместимой BS, которая появилась из MS с тех пор. У MS даже есть grep? – xcramps 2009-08-20 16:58:05
Вот часть предыдущего объяснения. Он отображает последние 10 строк текущего файла: ____ для/f "tokens = 3" %% f in ('find/c/v ""% 0') установить nbLines = %% f ____ set/a nbSkippedLines = % nbLines% -10 ____ for/f "skip =% nbSkippedLines% delims =" %% d in (% 0) do echo %% d – Nicolas 2011-01-03 16:23:02
Существует множество вариантов, однако все они имеют недостатки с более продвинутыми функциями.
Windows Server 2003 Tools обеспечивает простой хвост, который может быть downloaded with the Resource Kit Tools. Он слишком ограничен во многих отношениях (блокирует следующий файл, не хватает многих опций, таких как --pid), однако будет делать основную задачу отслеживания файла.
GnuWin32 tail глючит (αβγ) - вещи, как -f просто не работают.
UnxUtils tail10 кажется лучше (-f работает, но --pid кажется не, -n, но не --lines = n не работает с -f), но кажется мертвым проектом.
Cygwin - большой уродливый месиво, возможно, просто используйте DLL и coreutils package - но все еще есть проблемы, например, - не работает с родными процессами win32.
Если вы используете PowerShell, то это работает:
Get-Content filenamehere -Wait -Tail 30
Публикация комментария Стефана снизу, так что люди не пропустите это
PowerShell 3 вводит -Tail параметр, чтобы включить только последние x строк
На самом деле это не динамично – 2010-03-19 08:35:03
Это динамично для меня. – jimueller 2010-07-27 17:34:02
Это полезно знать; Благодарю. Но у меня было несколько проблем с ним (в Windows 7). (1) он отображает весь файл (не подходит для массивного файла журнала, поэтому «хвост» может быть полезен) (2) он не так динамичен, как мне бы хотелось (возможно, из-за изменений ОС/файловой системы между моей установкой и другие плакаты?). То есть я решил, что оболочка, выполняющая `Get-Content`, иногда не обновляется, пока я не запустил` dir` в другой оболочке. – mpontillo 2011-03-02 23:33:27
Я предпочитаю TailMe из-за возможности просмотра нескольких файлов журнала одновременно в одном окне: http://www.dschensky.de/Software/Staff/tailme_en.htm
DOS имеет no tail command; вы можете загрузить двоичный файл Windows для хвоста GNU и других инструментов GNU here.
ДОС type
работает как * Nux-х cat
, хотя так же, как кошка, он делает дамп весь файл, так что его на самом деле не истинный хвост, но его будет доступен в крайнем случае без загрузки/установки истинного хвоста замены.
Другим вариантом было бы установить MSYS (который более легкий, чем Cygwin).
С помощью Windows PowerShell можно использовать:
Get-Content <file> -Wait
всех, кто заинтересован в командах с использованием пакетных через DOS CMD хвоста (см ниже) Его не префект и линия иногда повторяются.
использование: tail.bat -d tail.bat -f -f
@echo off
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem tail.bat -d <lines> <file>
rem tail.bat -f <file>
rem ****** MAIN ******
IF "%1"=="-d" GOTO displayfile
IF "%1"=="-f" GOTO followfile
GOTO end
rem ************
rem Show Last n lines of file
rem ************
:displayfile
SET skiplines=%2
SET sourcefile=%3
rem *** Get the current line count of file ***
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l)
rem *** Calculate the lines to skip
SET /A skiplines=%find_lc%-!skiplines!
rem *** Display to screen line needed
more +%skiplines% %sourcefile%
GOTO end
rem ************
rem Show Last n lines of file & follow output
rem ************
:followfile
SET skiplines=0
SET findend_lc=0
SET sourcefile=%2
:followloop
rem *** Get the current line count of file ***
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET find_lc=%%l)
FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile%`) DO (call SET findend_lc=%%l)
rem *** Calculate the lines to skip
SET /A skiplines=%findend_lc%-%find_lc%
SET /A skiplines=%find_lc%-%skiplines%
rem *** Display to screen line when file updated
more +%skiplines% %sourcefile%
goto followloop
:end
установить набор инструментов MKS .. так что вы можете запускать все команды Unix в окнах.
tail -f - это команда.
вы можете попробовать WinTail, а http://www.baremetalsoft.com/wintail/
Я использовал Mtail недавно, и это, кажется, работает хорошо. Это тип графического интерфейса, например, упомянутый выше.
Я использую Kiwi Log Viewer, это бесплатно.
Я просто написал этот небольшой пакетный скрипт. Это не так сложно, как «хвост» unix, но, надеюсь, кто-то может добавить его к нему, чтобы улучшить его, например, ограничение вывода на последние 10 строк файла и т. Д. Если вы улучшите этот скрипт, отправьте его меня при грабеже ~ [at] ~ gmail.com.
@echo off
:: This is a batch script I wrote to mimic the 'tail' UNIX command.
:: It is far from perfect, but I am posting it in the hopes that it will
:: be improved by other people. This was designed to work on Windows 7.
:: I have not tested it on any other versions of Windows
if "%1" == "" goto noarg
if "%1" == "/?" goto help
if "%1" == "-?" goto help
if NOT EXIST %1 goto notfound
set taildelay=%2
if "%taildelay%"=="" set taildelay=1
:loop
cls
type %1
:: I use the CHOICE command to create a delay in batch.
CHOICE /C YN /D Y /N /T %taildelay%
goto loop
:: Error handlers
:noarg
echo No arguments given. Try /? for help.
goto die
:notfound
echo The file '%1' could not be found.
goto die
:: Help text
:help
echo TAIL filename [seconds]
:: I use the call more pipe as a way to insert blank lines since echo. doesnt
:: seem to work on Windows 7
call | more
echo Description:
echo This is a Windows version of the UNIX 'tail' command.
echo Written completely from scratch by Andrey G.
call | more
echo Parameters:
echo filename The name of the file to display
call | more
echo [seconds] The number of seconds to delay before reloading the
echo file and displaying it again. Default is set to 1
call | more
echo ú /? Displays this help message
call | more
echo NOTE:
echo To exit while TAIL is running, press CTRL+C.
call | more
echo Example:
echo TAIL foo 5
call | more
echo Will display the contents of the file 'foo',
echo refreshing every 5 seconds.
call | more
:: This is the end
:die
Я не видел журнала Эксперт в любом месте среди ответов здесь:
Это настраиваемый и очень хорошо для обходе файлов журнала, до сих пор это лучшие окна графического просмотра журнала для меня ,
Графический просмотрщик журналов, хотя они могут быть очень хороши для просмотра файлов журналов, не соответствуют потребности в утилите командной строки, которая может быть включена в скрипты (или пакетные файлы). Часто такая простая и универсальная команда может использоваться как часть специализированного решения для конкретной среды. Графические методы не поддаются такому использованию.
Я думаю, что нашел утилиту, которая отвечает потребностям функции хвоста в пакетных файлах. Это называется «mtee», и это бесплатно. Я включил его в пакетный файл, над которым я работаю, и он делает работу очень красиво. Просто убедитесь, что вы поместите исполняемый файл в каталог в инструкции PATH и уходите.
Вот ссылка:
В Far Manager пресс F3 на файл, чтобы ввести стандартный просмотрщик, то End ключ для перехода к концу файла. Если файл обновлен - Far будет автоматически прокручивать его.
хвост команды и многие другие доступны в комплект инструментов пакета Windows Resource из http://www.microsoft.com/en-us/download/details.aspx?id=17657
Не exaclty простофиля, но посмотреть здесь http://stackoverflow.com/questions/247234/do-you-know -a-like-program-for-wc-unix-word-count-command-on-windows – 2009-08-20 16:59:25