0

我正在将命令的输出写入 bash 文件。该命令逐渐产生输出,我使用 grep 检索部分特定行,并使用 tee 将其写入文件。现在,该命令正在将所有行写入文件。我希望每次 bash 命令有一些输出时都截断文件,这样文件中总是只有一行。我怎样才能达到这样的效果?

我正在使用的命令是: 2>&1 zypper -x -n in geany | grep -o --line-buffered "percent=\"[0-9]*\"" | tee /var/log/oneclick.log

这会产生类似percent="10"的输出。每次,文件中应该只存在一行

4

1 回答 1

1

If you need to overwrite the file for each line:

2>&1 zypper -x -n in geany | 
grep -o --line-buffered "percent=\"[0-9]*\"" |
while read line; do
    echo "$line" > /var/log/oneclick.log
    echo "$line"
done
于 2012-11-15T21:19:16.397 回答