我想读取整个文件并让它等待输入,就像tail -f 但是显示完整的文件一样。
这个文件的长度总是会改变的,因为这是一个.log文件。
如果我不知道文件的长度,我该怎么做?
如何将输出更改tail为使用以空字符结尾的行而不是换行符?
我的问题类似于这个问题:如何在 bash 中对空分隔输入执行 `head` 和 `tail`?,但不同之处在于我想做一些类似的事情:
tail -f myFile.txt | xargs -i0 myCmd {} "arg1" "arg2"
Run Code Online (Sandbox Code Playgroud)
我没有使用find,所以不能使用-print0
这一切都是为了避免xargs中出现的错误:
xargs: unmatched double quote;
by default quotes are special to xargs unless you use the -0 option
Run Code Online (Sandbox Code Playgroud) 我已配置rsyslog将某些日志事件记录到/dev/xconsole:
*.*;cron.!=info;mail.!=info |/dev/xconsole
Run Code Online (Sandbox Code Playgroud)
/dev/xconsole是一个命名管道 ( fifo)。如果我想查看正在记录的内容,我可以做cat /dev/xconsole. 我很惊讶地看到,该命令cat /dev/xconsole在读取文件后并未完成,而是充当tail -f. 换句话说,这两个命令的行为相同:
cat /dev/xconsole
tail -f /dev/xconsole
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这是为什么吗?
两者之间有什么区别吗?
find命令可以将文件名输出为空分隔的字符串(如果-print0提供),并且xargs可以在-0打开选项的情况下使用它们。但是在两者之间,很难对文件进行操作的该集合-sort命令有-z开关,这使得它可能对这些文件进行排序,但head并tail没有他们。
我该怎么做head,并tail在一个方便的方式与空分隔的投入?(我总是可以创建一个简短而缓慢的 ruby 脚本,但我希望可以有更好的方法)
我正在查看不同的日志
tail -q -f /var/log/syslog -f /var/log/fail2ban.log -f /var/log/nginx/error.log
Run Code Online (Sandbox Code Playgroud)
我怎样才能让每个日志的输出颜色不同?
当一次拖尾多个文件时,如下所示,有没有办法在每行的开头显示文件名?
tail -f one.log two.log
Run Code Online (Sandbox Code Playgroud)
电流输出
==> one.log <==
contents of one.log here...
contents of one.log here...
==> two.log <==
contents of one.log here...
contents of two.log here..
Run Code Online (Sandbox Code Playgroud)
寻找类似的东西
one.log: contents of one.log here...
one.log: contents of one.log here...
two.log: contents of two.log here...
two.log: contents of two.log here...
Run Code Online (Sandbox Code Playgroud) 我正在使用tail -f a.txt一个名为a.txt.
如果我使用类似于ls -a >> a.txt在第二个虚拟控制台中的内容更新文件,更改将实时显示在第一个中。
如果我在第二个虚拟控制台中使用 Vim 更新文件,更改将不会显示在第一个控制台中。
我不一定期望它在该窗口中触发更新 - 但为什么这不更新运行tail -f命令的终端?
这个问题的变体肯定在不同的地方被问过几次,但我试图M从文件中删除最后一行而没有运气。
在第二个最投票的答案在这个问题建议做以下摆脱在文件的最后一行:
head -n -1 foo.txt > temp.txt
Run Code Online (Sandbox Code Playgroud)
但是,当我在 OSX & Zsh 中尝试时,我得到:
head: illegal line count -- -1
Run Code Online (Sandbox Code Playgroud)
这是为什么?我如何删除M 最后一个行和在第一个 N给定文件的行?
如果myfile随着时间的推移而增加,我可以使用每秒获得行数
tail -f | pv -lr > /dev/null
Run Code Online (Sandbox Code Playgroud)
它提供瞬时速度,而不是平均速度。
我怎样才能得到平均速度(即速度函数v(t)在监控时间内的积分)。
当我SELECT使用 MySQL Workbench查看 a 的结果时,使用一个\是正确的
max@host 10:13:58: ~$ mysql -h db-master.domain.local -uuser -ppw db -e '
> SELECT
> DISTINCT i.filesourceregexp
> FROM db.ImportLogFiles i'
+------------------------------------------------+
| filesourceregexp |
+------------------------------------------------+
| ^[0-9]{8}_1062355673_merge_google_pbn\.csv$ |
| ^[0-9]{8}_8026062435_merge_google_pbn\.csv$ |
| ^[0-9]{8}_1062355673_store_visits_report\.csv$ |
+------------------------------------------------+
max@host 10:14:10: ~$ mysql -h db-master.domain.local -uuser -ppw db -e '
SELECT
DISTINCT i.filesourceregexp
FROM db.ImportLogFiles i' | tail -n +2
^[0-9]{8}_1062355673_merge_google_pbn\\.csv$
^[0-9]{8}_8026062435_merge_google_pbn\\.csv$
^[0-9]{8}_1062355673_store_visits_report\\.csv$
max@host 10:14:19: ~$
Run Code Online (Sandbox Code Playgroud)
我有这些选项my.cnf:
[client]
host = db-master
user = …Run Code Online (Sandbox Code Playgroud)