【问题标题】:Command Linux not working "grep" [closed]命令Linux不工作“grep”[关闭]
【发布时间】:2014-06-11 08:44:36
【问题描述】:

我在 Linux 中使用命令 grep 从我的输出文件中获取特定信息,但我不知道为什么不复制到文件中。

当我使用这样的命令时,它可以工作

udevadm monitor --env | grep "ACTION"
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove
ACTION=remove

但是,当我使用这样的命令时,它不会复制到“output.txt”

udevadm monitor --env | grep "ACTION" >> output.txt

【问题讨论】:

  • 这是因为重定向中的缓冲,请参阅this question 了解如何绕过它。简短的回答:将--line-buffered 选项添加到grep 命令。
  • @Thor 谢谢它现在正在工作......我只是添加了这样的“--line-buffered”选项,它正在工作 udevadm monitor --env | grep --line-buffered "ACTION" >> file.txt

标签: linux grep


【解决方案1】:

试试:

udevadm monitor --env >> file ; cat file | grep "ACTION" >> result 

告诉我有关文件和结果的信息。

【讨论】:

  • @Dinou ..我用你的命令,创建了两个文件......在第一个“文件”中我得到了“udevadm监视器”的所有信息,但在第二个文件中“结果”没有复制到这个文件。
  • 您可以输入:ll result 以了解文件权限...
【解决方案2】:

命令是正确的。您必须在output.txt 的末尾找到过滤后的行。 您可以在其间添加tee 以查看复制的内容。

udevadm monitor --env | grep "ACTION" | tee >> output.txt

【讨论】:

  • 感谢@Igor Chubin 的快速回复......我使用了你向我提出的命令,但仍然无法处理“output.txt”......文件仍然空:s
  • 但输出不为空?
猜你喜欢
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多