saurabhsood91
saurabhsood91

Reputation: 489

Truncating File in Bash

I am writing the output of a command into a bash file. The command gradually produces output, and I am using grep to retrieve part specific lines, and tee to write it to the file. Right now, the command is writing all the lines into the file. I want the file to be truncated everytime the bash command has some output, such that there is always one line in the file. How can I achieve such an effect?

The command I am using is: 2>&1 zypper -x -n in geany | grep -o --line-buffered "percent=\"[0-9]*\"" | tee /var/log/oneclick.log

This produces output like percent="10" and so on. Each time, only one line should exist in the file

Upvotes: 0

Views: 852

Answers (1)

glenn jackman
glenn jackman

Reputation: 246799

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

Upvotes: 1

Related Questions