标签: tail

"tail -f | iconv -fsjis" 不输出任何内容

我想要tail -f一个文件,但它的内容是sjis编码的,所以我需要将它转换为我的终端的本机 (utf-8) 编码。

当我做

尾-fx | iconv -fsjis

不会有输出。作为

尾巴 x | iconv -fsjis

确实有效,起初我认为这是一个缓冲问题,但尝试unbufferstdbuf按照关闭管道中的缓冲没有帮助。

实际上,即使在 x 中添加了 10k 以上的数据,也不会有输出,所以我想这不是缓冲问题(缓冲区是 4k,如果我没记错的话),但是 iconv 只会在它收到一个EOF。

那么我怎样才能跟随我的 sjis 编码文件呢?

tail buffer

15
推荐指数
1
解决办法
3289
查看次数

为什么将 `mysql` 管道传输到 'tail' 会改变输出格式?

当我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)

pipe tail mysql

15
推荐指数
1
解决办法
1888
查看次数

tail -f,日志空闲3秒后插入换行符?

执行 a 时tail -f error.log,如何在 3 秒内未向文件附加任何内容后以编程方式插入换行符?

(显然,一旦添加了一个换行符,在将另一行文本添加到日志文件之前,不应添加其他换行符)

例如,这些行被附加到 error.log :

foo
bar
boo [[wait 4 seconds]]
2far
2foo
2bar
2boo [[wait 40 seconds]]
2far
Run Code Online (Sandbox Code Playgroud)

这将是控制台中的输出:

foo
bar
boo

2far
2foo
2bar
2boo

2far
Run Code Online (Sandbox Code Playgroud)

shell-script tail text-processing

15
推荐指数
3
解决办法
1922
查看次数

使用 tail 时禁止“文件截断”消息

我正在使用尾随日志文件tail -f messages.log,这是输出的一部分:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Fusce eget tellus sit amet odio porttitor rhoncus. 
Donec consequat diam sit amet tellus viverra pellentesque. 
tail: messages.log: file truncated
Suspendisse at risus id neque pharetra finibus in facilisis ipsum.
Run Code Online (Sandbox Code Playgroud)

它显示tail: messages.log: file truncated文件何时被自动截断并且应该发生这种情况,但我只想tail向我显示没有此截断消息的输出。

我试过使用,tail -f messages.log | grep -v truncated但它仍然向我显示消息。

有什么方法可以抑制此消息?

grep tail output

13
推荐指数
2
解决办法
3万
查看次数

tail -f,但是当文件被删除并重新创建时(未附加)

我正在尝试观察日志文件的任何新输出。另一个脚本(不受我控制)正在删除该文件,然后创建一个具有相同名称的新文件。使用tail -f不起作用,因为文件正在被删除。

tail

13
推荐指数
1
解决办法
5627
查看次数

是否可以遵循命令(重复运行)?就像使用tail -f跟踪文件一样?

我有一个生成文件“Detail.out”的脚本。我知道只要文件包含一定数量的行(大约 21025),脚本就会完成。所以我发现自己坐在命令提示符下运行:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...
Run Code Online (Sandbox Code Playgroud)

我曾经tail -f看过一个特定的文件,但我想按照wc -l */Detail.out上面显示的命令的输出进行操作。 这可能吗?tcsh如果这很重要, 我目前正在Ubuntu 11.04 中使用。

monitoring pipe tail

12
推荐指数
1
解决办法
3411
查看次数

如何开始拖尾尚未创建的文件

tail用来监视我知道将其进度写入磁盘的作业的进度。几乎总是,我知道他们在开始运行之前将创建哪个文件(作业由超级计算机上的调度程序调度)

tail在创建这些文件之前,有没有办法处理它们?我想这样做,同时避免竞争条件和/或对作业写入磁盘的方式或时间做出假设。

shell-script tail files

12
推荐指数
2
解决办法
2193
查看次数

为什么我不能在 tail 之后执行两次 grep 操作?

我能够成功运行此命令:

tail -f my_file.txt | grep foo
Run Code Online (Sandbox Code Playgroud)

它只显示带有字符串 的行foo,并且一直显示它们。

但是当我运行这个命令时:

tail -f my_file.txt | grep foo | grep bar
Run Code Online (Sandbox Code Playgroud)

它不显示任何行,即使有些行同时包含foobar

我知道有一个在一次grep调用中使用多种模式的解决方案,但我想知道为什么这条线失败了。

grep pipe tail

12
推荐指数
1
解决办法
1688
查看次数

如何限制命令的输出在 bash 中可用的行数?

我开始在后台下载一个大文件使用

$ nohup wget http://example.tld/big.iso &
Run Code Online (Sandbox Code Playgroud)

这也给了我一个nohup.out包含wget.

现在,如果我以后想观看下载过程,我可以使用,$ tail -f nohup.out但这会比我希望的更快地填满我的终端窗口。我想看到的是最后一行不断更新(就像wget单独使用时一样)。

我试过了,$ tail -n 1 -f nohup.out但它似乎只影响最初的tailin'。

一般来说,如果可以限制(在这种情况下为 1)命令的输出可用/可见的行数,它将解决这个问题。有点在循环缓冲区中输出- 想想正常的进度条$ wget example.tld/big.iso会打印。

有这样的解决方案吗?

还是我爬树的方式不对?(意思是,限制nohup输出或做其他事情会更容易吗?)

bash tail nohup stdout

11
推荐指数
2
解决办法
3万
查看次数

使用 head 和 tail 抓取不同的行集并保存到同一个文件中

所以这是家庭作业,但我不会问具体的家庭作业问题。

我需要使用 head 和 tail 从一个文件中获取不同的行集。所以像第 6-11 行和第 19-24 行一样,将它们都保存到另一个文件中。我知道我可以使用 append 来做到这一点,例如

head -11 file|tail -6 > file1; head -24 file| tail -6 >> file1. 
Run Code Online (Sandbox Code Playgroud)

但我认为我们不应该这样做。
有没有一种特定的方法可以组合 head 和 tail 命令然后保存到文件中?

tail head

11
推荐指数
2
解决办法
4万
查看次数

标签 统计

tail ×10

pipe ×3

grep ×2

shell-script ×2

bash ×1

buffer ×1

files ×1

head ×1

monitoring ×1

mysql ×1

nohup ×1

output ×1

stdout ×1

text-processing ×1