我试图找到一个关于如何连续显示其最后几行内容的文件的Unix命令(可能是组合).但在此显示期间,我希望当滚动内容到达屏幕顶部时,一些顶行总是显示在屏幕顶部.
那可能吗?
(1)假设我有文件"job.sta",前两行是:工作名称,John在2013年1月30日的工作,... Tab1,Tab2,Tab3 0,1,2,1,90, 89 2,89,23 ......
(2)这个文件正在运行,它的内容正在增长,我不知道它将结束什么行.
(3)所以我想在使用tail命令时显示(总是)前两行,当更新内容到达Unix shell屏幕顶部时.我现在正在使用PuTTY.
参考:http: //www.unix.com/unix-dummies-questions-answers/172000-head-tail-how-display-middle-lines.html
因此,Erlang是一个真正的乐趣,但偶尔会遇到一个问题,我想知道是否有更好的解决方法.通常,我发现自己需要从列表中拆分多个项目.将列表拆分为Head和Tail的语法很简单,但是当有多个项目时呢?
1> List = [1,2,3,4,5].
[1,2,3,4,5]
2> [Head | Tail] = List.
[1,2,3,4,5]
3> Head.
1
4> Tail.
[2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来获得列表的前两个元素,而不是分割两次内联?
1> List = [1,2,3,4,5].
[1,2,3,4,5]
2> [Head1 | [Head2 | Tail]] = List.
[1,2,3,4,5]
3> Head1.
1
4> Head2.
2
5> Tail.
[3,4,5]
Run Code Online (Sandbox Code Playgroud)
我知道这也可以通过编写从列表中递归拆分后续磁头的函数来简化,但我想知道是否有更简单的内联方法(或者实际上,递归后续拆分函数是最佳实践)完成这项任务的方法)?谢谢!
如果我有一个myownfile.txt包含3行文本的文件名.
foo
hello world
bar
Run Code Online (Sandbox Code Playgroud)
我想在中间显示只hello world使用head和tail命令的行.
我正在尝试构建一个shell脚本来监视一些日志文件.我正在使用这样的命令:
tail -f /var/somelog | grep --line-buffered " some test and p l a c e h o l d e r" | cut -f 3,4,14 -d " "
Run Code Online (Sandbox Code Playgroud)
日志文件如下:
some test and p l a c e h o l d e r 3
some test and p l a c e h o l d e r 4
some test and p l a c e h o l d e r 5
some test and p l …Run Code Online (Sandbox Code Playgroud) 我不知道有没有?但是内置在Web服务器中的PHP也将其错误日志保存在文件中吗?用于拖尾目的,例如在apache中创建虚拟主机时.
更新:我正在使用mac osx
我正在使用exiftool的shell脚本自动更改某个文件夹中包含的图片上的一些exif标签,我想在作业完成时使用输出在我的NAS(QNAP)上获取通知.
一切正常,但是 - 当通知系统截断消息时 - 我希望只收到我需要的信息,即shell输出的最后一行,例如以下内容:
Warning: [minor] Entries in IFD0 were out of sequence. Fixed. - 2015-07-12 15.41.06.jpg
4512 files failed condition
177 image files updated
Run Code Online (Sandbox Code Playgroud)
问题是目前我只收到以下通知:
在相机上完成Exiftool cronjob:4512文件失败
我想要的是:
在相机上完成Exiftool cronjob:更新了177个图像文件
该脚本如下:
#!/bin/sh
# exiftool script for 2002 problem
dir="/share/Multimedia/Camera"
cd "$dir"
FOLDER="$(printf '%s\n' "${PWD##*/}")"
OUTPUT="$(exiftool -overwrite_original -r '-CreateDate<DateTimeOriginal' -if '$CreateDate eq "2002:12:08 12:00:00"' -if '$DateTimeOriginal ne $CreateDate' *.[Jj][Pp][Gg])"
/sbin/notice_log_tool -a "Exiftool cronjob completed on ${FOLDER}: ${OUTPUT}" --severity=5
exit 0
Run Code Online (Sandbox Code Playgroud)
为此,我使用|使用$ OUTPUT变量 尾巴-1,但可能我犯了一些基本错误,我得到的结果如下:
在相机上完成Exiftool cronjob:4512文件条件失败| 尾巴-1
如何以正确的方式做到这一点?谢谢
这是我的文件
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
我想通过管道发送该文件的 cat 输出并接收该文件
% cat file | some_command
1
2
...
9
10
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的一些解决方案及其输出
% cat temp | (head -n2 && echo '...' && tail -n2)
1
2
...
Run Code Online (Sandbox Code Playgroud)
% cat temp | tee >(head -n3) >(tail -n3) >/dev/null
1
2
3
8
9
10
# I don't know how to get the ...
Run Code Online (Sandbox Code Playgroud)
% cat temp | sed -e 1b -e '$!d'
1
10
% cat …Run Code Online (Sandbox Code Playgroud) 我想在C++中创建一个与"tail-f"功能相同的小代码:在文本文件中查看新行并在标准输出中显示它们.
想法是有一个监视文件的线程
有没有一种简单的方法可以在不打开和关闭文件的情况下每次都这样做?
我正在努力实现tail -f -n10匹配模式的等价物.
起初我想,tail -f -n10 | grep PATTERN但只返回与文件的最后10行中的模式匹配的行.
我要找的是文件中存在的最后十个匹配,而不是文件最后十行中的匹配.有没有办法实现这个目标?
请注意:我指定tail -f因为我希望输出是连续的.我正在使用此命令来查看特定模式的日志文件.