Getting awk value and outputting to a file [duplicate]
This question already has an answer here:
Turn off buffering in pipe
13 answers
Flush 'tail -f' buffer?
2 answers
Why does awk do full buffering when reading from a pipe
3 answers
I need to get a value from a log file which I am getting using awk at the moment. I can get the number printing on the console but when I try to put that value into a new file nothing happens. Here is what i have
sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -F $INPUT_FILE | awk '{ print $16 }' > $OUTPUT_FILE
//when command is run without > $OUTPUT_FILE i get my value eg 4000
This isnt a buffering issue because there is nothing being outputted to the file. A file gets created but the value isnt written to the new file. Also my value is always being overwritten as it is reading a line from another script which continuously replaces the line I read.
So i have fixed the problem I was having. The solution was assigning the command to a variable and the writing that variable to a file. I tried this before but the issue I had was i had an extra space between my = sign and the command. Here is the working code
value=`sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
echo $value
echo $value > $OUTPUT_FILE
//will not work because of the space between "value= `sshpass"
// value= `sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
awk pipe cat
marked as duplicate by Kusalananda♦
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Mar 5 at 9:29
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
|
show 3 more comments
This question already has an answer here:
Turn off buffering in pipe
13 answers
Flush 'tail -f' buffer?
2 answers
Why does awk do full buffering when reading from a pipe
3 answers
I need to get a value from a log file which I am getting using awk at the moment. I can get the number printing on the console but when I try to put that value into a new file nothing happens. Here is what i have
sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -F $INPUT_FILE | awk '{ print $16 }' > $OUTPUT_FILE
//when command is run without > $OUTPUT_FILE i get my value eg 4000
This isnt a buffering issue because there is nothing being outputted to the file. A file gets created but the value isnt written to the new file. Also my value is always being overwritten as it is reading a line from another script which continuously replaces the line I read.
So i have fixed the problem I was having. The solution was assigning the command to a variable and the writing that variable to a file. I tried this before but the issue I had was i had an extra space between my = sign and the command. Here is the working code
value=`sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
echo $value
echo $value > $OUTPUT_FILE
//will not work because of the space between "value= `sshpass"
// value= `sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
awk pipe cat
marked as duplicate by Kusalananda♦
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Mar 5 at 9:29
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
What is the output ofecho $OUTPUT_FILE
?
– Sparhawk
Mar 5 at 9:17
Try to add on the end of line2>&1
– Romeo Ninov
Mar 5 at 9:19
If I do echo$OUTPUT_FILE
right now nothing gets printed out and the file itself is empty.
– Owen
Mar 5 at 9:20
1
If you try w/o-F
ontail
you will probably get the answer. This key keep the stream open and the redirection is buffered
– Romeo Ninov
Mar 5 at 9:27
1
yes that is a buffering issue, not on the output of awk but on its input; I suggest you trygawk
instead ofawk
orawk -Winteractive
if theawk
on your system ismawk
(as on debian, ubuntu, etc).
– mosvy
Mar 5 at 10:42
|
show 3 more comments
This question already has an answer here:
Turn off buffering in pipe
13 answers
Flush 'tail -f' buffer?
2 answers
Why does awk do full buffering when reading from a pipe
3 answers
I need to get a value from a log file which I am getting using awk at the moment. I can get the number printing on the console but when I try to put that value into a new file nothing happens. Here is what i have
sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -F $INPUT_FILE | awk '{ print $16 }' > $OUTPUT_FILE
//when command is run without > $OUTPUT_FILE i get my value eg 4000
This isnt a buffering issue because there is nothing being outputted to the file. A file gets created but the value isnt written to the new file. Also my value is always being overwritten as it is reading a line from another script which continuously replaces the line I read.
So i have fixed the problem I was having. The solution was assigning the command to a variable and the writing that variable to a file. I tried this before but the issue I had was i had an extra space between my = sign and the command. Here is the working code
value=`sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
echo $value
echo $value > $OUTPUT_FILE
//will not work because of the space between "value= `sshpass"
// value= `sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
awk pipe cat
This question already has an answer here:
Turn off buffering in pipe
13 answers
Flush 'tail -f' buffer?
2 answers
Why does awk do full buffering when reading from a pipe
3 answers
I need to get a value from a log file which I am getting using awk at the moment. I can get the number printing on the console but when I try to put that value into a new file nothing happens. Here is what i have
sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -F $INPUT_FILE | awk '{ print $16 }' > $OUTPUT_FILE
//when command is run without > $OUTPUT_FILE i get my value eg 4000
This isnt a buffering issue because there is nothing being outputted to the file. A file gets created but the value isnt written to the new file. Also my value is always being overwritten as it is reading a line from another script which continuously replaces the line I read.
So i have fixed the problem I was having. The solution was assigning the command to a variable and the writing that variable to a file. I tried this before but the issue I had was i had an extra space between my = sign and the command. Here is the working code
value=`sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
echo $value
echo $value > $OUTPUT_FILE
//will not work because of the space between "value= `sshpass"
// value= `sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`
This question already has an answer here:
Turn off buffering in pipe
13 answers
Flush 'tail -f' buffer?
2 answers
Why does awk do full buffering when reading from a pipe
3 answers
awk pipe cat
awk pipe cat
edited Mar 5 at 10:42
Owen
asked Mar 5 at 9:14
OwenOwen
65
65
marked as duplicate by Kusalananda♦
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Mar 5 at 9:29
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Kusalananda♦
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Mar 5 at 9:29
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
What is the output ofecho $OUTPUT_FILE
?
– Sparhawk
Mar 5 at 9:17
Try to add on the end of line2>&1
– Romeo Ninov
Mar 5 at 9:19
If I do echo$OUTPUT_FILE
right now nothing gets printed out and the file itself is empty.
– Owen
Mar 5 at 9:20
1
If you try w/o-F
ontail
you will probably get the answer. This key keep the stream open and the redirection is buffered
– Romeo Ninov
Mar 5 at 9:27
1
yes that is a buffering issue, not on the output of awk but on its input; I suggest you trygawk
instead ofawk
orawk -Winteractive
if theawk
on your system ismawk
(as on debian, ubuntu, etc).
– mosvy
Mar 5 at 10:42
|
show 3 more comments
What is the output ofecho $OUTPUT_FILE
?
– Sparhawk
Mar 5 at 9:17
Try to add on the end of line2>&1
– Romeo Ninov
Mar 5 at 9:19
If I do echo$OUTPUT_FILE
right now nothing gets printed out and the file itself is empty.
– Owen
Mar 5 at 9:20
1
If you try w/o-F
ontail
you will probably get the answer. This key keep the stream open and the redirection is buffered
– Romeo Ninov
Mar 5 at 9:27
1
yes that is a buffering issue, not on the output of awk but on its input; I suggest you trygawk
instead ofawk
orawk -Winteractive
if theawk
on your system ismawk
(as on debian, ubuntu, etc).
– mosvy
Mar 5 at 10:42
What is the output of
echo $OUTPUT_FILE
?– Sparhawk
Mar 5 at 9:17
What is the output of
echo $OUTPUT_FILE
?– Sparhawk
Mar 5 at 9:17
Try to add on the end of line
2>&1
– Romeo Ninov
Mar 5 at 9:19
Try to add on the end of line
2>&1
– Romeo Ninov
Mar 5 at 9:19
If I do echo
$OUTPUT_FILE
right now nothing gets printed out and the file itself is empty.– Owen
Mar 5 at 9:20
If I do echo
$OUTPUT_FILE
right now nothing gets printed out and the file itself is empty.– Owen
Mar 5 at 9:20
1
1
If you try w/o
-F
on tail
you will probably get the answer. This key keep the stream open and the redirection is buffered– Romeo Ninov
Mar 5 at 9:27
If you try w/o
-F
on tail
you will probably get the answer. This key keep the stream open and the redirection is buffered– Romeo Ninov
Mar 5 at 9:27
1
1
yes that is a buffering issue, not on the output of awk but on its input; I suggest you try
gawk
instead of awk
or awk -Winteractive
if the awk
on your system is mawk
(as on debian, ubuntu, etc).– mosvy
Mar 5 at 10:42
yes that is a buffering issue, not on the output of awk but on its input; I suggest you try
gawk
instead of awk
or awk -Winteractive
if the awk
on your system is mawk
(as on debian, ubuntu, etc).– mosvy
Mar 5 at 10:42
|
show 3 more comments
0
active
oldest
votes
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
What is the output of
echo $OUTPUT_FILE
?– Sparhawk
Mar 5 at 9:17
Try to add on the end of line
2>&1
– Romeo Ninov
Mar 5 at 9:19
If I do echo
$OUTPUT_FILE
right now nothing gets printed out and the file itself is empty.– Owen
Mar 5 at 9:20
1
If you try w/o
-F
ontail
you will probably get the answer. This key keep the stream open and the redirection is buffered– Romeo Ninov
Mar 5 at 9:27
1
yes that is a buffering issue, not on the output of awk but on its input; I suggest you try
gawk
instead ofawk
orawk -Winteractive
if theawk
on your system ismawk
(as on debian, ubuntu, etc).– mosvy
Mar 5 at 10:42