我正在使用 RHEL 4。
tail -F file_name*.log
当时间翻转到 0000 时,法线不会更新。
这是我迄今为止在搜索网络时所尝试的,两者都尝试使用嵌套tail
:
tail -F $(ls -tr file_name*.log | tail -n 1)
tail -F $(fine . -maxdepth 1 -type f -printf "%T@ %p\n" | sort -n | tail n 1 | cut -d' ' -f 2-)
这些都没有翻转到新文件。tail -F file_name*.log
在我的小型测试用例中,旧的工作正常(而上面的 2 个没有),但是当我拖尾一个真实的日志文件时它不起作用。
我正在更改监控日志文件的工作脚本,以挑选出某些项目并为它们着色。最终输出是多列中的 6 位数字列表。我已经能够~
在数字的开头添加一个,并且它不会破坏最终输出中的任何内容,但是它相当丑陋且难以阅读。但是,当我尝试为数字着色时,无论是在前面的 bash 脚本中还是在 perl 脚本中对数据进行最终处理时,彩色文本都会被破坏。
例如,我将放入的原始数字$num
:
123456
Run Code Online (Sandbox Code Playgroud)
我在 perl 中输入了这个(或者,在 bash 中输入了很多相同的东西):
"\e[1;34m" . $num . "\e[0m"
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
[1;34m123456[0m
Run Code Online (Sandbox Code Playgroud)
我也试过这个,一个转义版本,但得到同样的东西:
"\x1B[1;34m" . $num . "\x1B[0m"
Run Code Online (Sandbox Code Playgroud)
如果这有所作为,这里是真正的脚本堆栈(一团糟):
grep
/ cut
/etc。cut
/etc. 的shell 脚本,然后通过管道传输到 .pl也许watch
不喜欢颜色呢?
我perl
不太清楚,所以我想显示我在打印线周围看到的内容不会有什么坏处:
my $format = ("%-8s") x scalar(@{$a[0]});
printf("$format\n", @$_)
Run Code Online (Sandbox Code Playgroud) 基本上,如果输入与过滤器匹配,我想要做的就是改变输出,但被改变的部分不是被过滤的部分(或者我会使用sed
)。到目前为止的问题是我awk
只输出更改后的行。
快速示例,将其放在 test.txt 中:
orange beet pear cowmilk
apple pear berry cowmilk
orange melon cherry cowmilk
Run Code Online (Sandbox Code Playgroud)
如果我使用代码:
awk /orange/'{gsub(/cow/,"cow~"); print}' test.txt
Run Code Online (Sandbox Code Playgroud)
我得到:
orange beet pear cow~milk
orange melon cherry cow~milk
Run Code Online (Sandbox Code Playgroud)
当我宁愿得到:
orange beet pear cow~milk
apple pear berry cowmilk
orange melon cherry cow~milk
Run Code Online (Sandbox Code Playgroud)
我知道您可以||
使用 awk,但我一直无法弄清楚如何使其适合上面的 gsub。
对于奖金升值,我真正想做的是添加颜色而不是~
,但这完全中断,即
awk /orange/'{gsub(/cow/,"cow'\e[1;34m'"); print}' test.txt
Run Code Online (Sandbox Code Playgroud)
给我一个关于\
不是行尾的错误。