当我将脚本重定向到shell中的文本文件时,如何读取文件

时间:2016-02-23 06:27:23

标签: bash shell

我正在执行脚本并使用命令sample.sh -base BUG2 1>将输出重定向到文本文件。 output.txt 2>& 1

现在在脚本中我想读取文本文件的内容来grep一些单词。那么我们如何在脚本运行时读取该文本文件。

2 个答案:

答案 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