我正在执行脚本并使用命令sample.sh -base BUG2 1>将输出重定向到文本文件。 output.txt 2>& 1
现在在脚本中我想读取文本文件的内容来grep一些单词。那么我们如何在脚本运行时读取该文本文件。
答案 0 :(得分:0)
如果我做得好,你想要执行一个脚本,并将其标准输出重定向到一个文件和标准输出:tee
就是你要找的。
此命令将其标准输入重定向到文件及其标准输出(http://ss64.com/bash/tee.html)
sample.sh -base BUG2 | tee 'file.txt' | more_script
答案 1 :(得分:0)
我不确定我是否正确理解了您的问题,但从我能猜到并假设的情况来看,您似乎正在尝试阅读并写入同一文件。
您将能够这样做,但您无法快退,因为Bash无法寻找。
Read more关于重定向。
如果您尝试执行以下操作:cat file | sed s/foo/bar/ > file
,即从文件中读取并在同一管道中写入。
那个勇气是不可能的。
你无法从文件中读取并在同一个管道中写入。根据管道的作用,文件可能被破坏(0字节,或者可能是等于操作系统管道缓冲区大小的字节数),或者它可能会增长直到它填满可用磁盘空间,或达到您的操作系统的文件大小限制,或您的配额等。
(引自Bash Pitfalls 13)