从日志文件的sftp连接中排除特定的行

梅尼希

我有多个脚本可以连接到sftp服务器并放置/获取文件。最近,sftp管理员为所有登录名添加了一个较大的标头,这炸毁了我的日志文件,我想排除这一点,因为它炸毁了文件大小,并使日志有些难以读取。

照原样,这些命令具有以下格式:

sftp user@host <<EOF &>> ${LOGFILE}
get ...
put ...
exit
EOF

现在,我尝试删除所有新行,所有新行均以管道开头(它们基本上是一个盒子来放入它们)。

sftp user@host <<EOF | grep -v '^|' &>> ${LOGFILE}
get ...
put ...
exit
EOF

这将这些行排除在外,${LOGFILE}而是将它们扔给它们,stdout这意味着它们最终会出现在另一个日志文件中,我们也不希望它们存在(这些脚本由调度程序调用)。奇怪的是,它似乎也从连接尝试输出中过滤掉了第一行。

Connecting to <host>...

并将其重定向到stdout不是世界末日,但我确实觉得很奇怪。

如何过滤以开头的行,|使其在任何地方都不显示?

Poshi

sftp user@host <<EOF &>> ${LOGFILE}

您正在将stdout和stderr重定向到日志文件以附加数据(&>>)。但是当你使用

sftp user@host <<EOF | grep -v '^|' &>> ${LOGFILE}

您只将stdout重定向到grep,而使sftp的stderr输出保持不变。最后,您将grep的Agains stdout和stderr重定向到日志文件。

实际上,您对从sftp重定向(stdout和stderr)都感兴趣,因此可以使用诸如以下内容:

sftp user@host <<EOF |& grep -v '^|' >> ${LOGFILE}

或者,在较旧的bash版本中,使用特定的重定向而不是速记:

sftp user@host <<EOF 2>&1 | grep -v '^|' >> ${LOGFILE}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从日志中排除特定的错误请求

来自分类Dev

从日志中排除异常

来自分类Dev

从日志中排除异常

来自分类Dev

从文件中排除特定的关键字

来自分类Dev

如何从数据框中排除特定的行?

来自分类Dev

如何从SQL计数中排除特定的行

来自分类Dev

从输出日志文件中排除 ANSI 转义序列

来自分类Dev

从小计行和总计行中排除特定的计算

来自分类Dev

如果行与特定文本匹配,则Bash从输出中排除行

来自分类Dev

从编译中排除文件

来自分类Dev

从编译中排除文件

来自分类Dev

从“checkJS”中排除文件

来自分类Dev

rsync-从包含的目录中排除特定文件

来自分类Dev

如何从.xap中排除文件以进行特定的构建配置

来自分类Dev

如何从递归文件复制中排除特定扩展名?

来自分类Dev

如何从查询结果中排除特定的行ID?

来自分类Dev

从SELECT中排除具有特定列值的行

来自分类Dev

从SELECT中排除具有特定列值的行

来自分类Dev

根据文件中的模式从输出中排除行

来自分类Dev

Rsyslog从系统日志中排除$ programname

来自分类Dev

apache 2.4 从访问日志中排除 img

来自分类Dev

在Maven / Intellij Idea项目中排除日志文件夹

来自分类Dev

从查找中排除文件列表

来自分类Dev

Intellij从编译中排除文件

来自分类Dev

如何从列表中排除文件

来自分类Dev

zsh:从模式中排除文件

来自分类Dev

如何从ubdatedb中排除文件?

来自分类Dev

从采购中排除多个文件?

来自分类Dev

PySpark从列表中排除文件