I have one following log file (input-data-file.log) and i want to do some filter on input file using shell script (.sh) which give me output which having actual count >0 value (Exclude 0 (zero) count from process data) along with server name in output file.
I have below input file --> input-data-file.log :
01:36:04|[user@SERVER-1 bin]$ ./script.sh
Data loading lists...
HALTED_SOFTSTOP: 0
ASYNC_QUEUED: 0
ACTIVE: 7
HALTED: 0
HALTING: 0
WAITING: 0
WAITING_ON_IO: 3
INTERRUPTED_MAN: 0
INTERRUPTED_AUTO: 0
01:36:18|[user@SERVER-1 bin]$ ./script.sh -list
Data loading lists...
HALTED_SOFTSTOP: []
ASYNC_QUEUED: []
ACTIVE: [328465405, 328460561, 328465417, 328465409, 328465411]
HALTED: []
HALTING: []
WAITING: []
WAITING_ON_IO: [328465211, 328465267, 328466202]
INTERRUPTED_MAN: []
INTERRUPTED_AUTO: []
01:36:33|[user@SERVER-1 bin]$ exit
logout
Connection to SERVER-1 closed.
01:36:43|[user@SERVER-2 bin]$ ./script.sh
Data loading lists...
HALTED_SOFTSTOP: 0
ASYNC_QUEUED: 0
ACTIVE: 1
HALTED: 4
HALTING: 0
WAITING: 0
WAITING_ON_IO: 7
INTERRUPTED_MAN: 0
INTERRUPTED_AUTO: 0
01:36:51|[user@SERVER-2 bin]$ ./script.sh -list
Data loading lists...
HALTED_SOFTSTOP: []
ASYNC_QUEUED: []
ACTIVE: [1731005633, 1731007235]
HALTED: [1729578637, 1729078919, 1729411521, 1730174742]
HALTING: []
WAITING: []
WAITING_ON_IO: [1578123006, 1578122748, 1578122627, 1578121867, 1578122892, 1578121839, 1578122653, 1578122731, 1578122789, 1578122942, 1578121834, 1578121868, 1578121795, 1578122746, 1578122644]
INTERRUPTED_MAN: []
INTERRUPTED_AUTO: []
01:36:58|[user@SERVER-2 bin]$ exit
logout
Connection to SERVER-2 closed.
01:37:49|[user@SERVER-3 bin]$ ./script.sh
Data loading lists...
HALTED_SOFTSTOP: 0
ASYNC_QUEUED: 0
ACTIVE: 0
HALTED: 0
HALTING: 0
WAITING: 0
WAITING_ON_IO: 0
INTERRUPTED_MAN: 0
INTERRUPTED_AUTO: 0
01:37:57|[user@SERVER-3 bin]$ ./script.sh -list
Data loading lists...
HALTED_SOFTSTOP: []
ASYNC_QUEUED: []
ACTIVE: []
HALTED: []
HALTING: []
WAITING: []
WAITING_ON_IO: []
INTERRUPTED_MAN: []
INTERRUPTED_AUTO: []
01:38:05|[user@SERVER-3 bin]$ exit
logout
Connection to SERVER-3 closed.
My excepted output in new file as below (i.e. output-data-file.log):
01:36:04|[user@SERVER-1 bin]$ ./script.sh
Data loading lists...
ACTIVE: 7
WAITING_ON_IO: 3
01:36:18|[user@SERVER-1 bin]$ ./script.sh -list
Data loading lists...
ACTIVE: [328465405, 328460561, 328465417, 328465409, 328465411]
WAITING_ON_IO: [328465211, 328465267, 328466202]
01:36:33|[user@SERVER-1 bin]$ exit
logout
Connection to SERVER-1 closed.
01:36:43|[user@SERVER-2 bin]$ ./script.sh
Data loading lists...
ACTIVE: 1
HALTED: 4
WAITING_ON_IO: 7
01:36:51|[user@SERVER-2 bin]$ ./script.sh -list
Data loading lists...
ACTIVE: [1731005633, 1731007235]
HALTED: [1729578637, 1729078919, 1729411521, 1730174742]
WAITING_ON_IO: [1578123006, 1578122748, 1578122627, 1578121867, 1578122892, 1578121839, 1578122653, 1578122731, 1578122789, 1578122942, 1578121834, 1578121868, 1578121795, 1578122746, 1578122644]
01:36:58|[user@SERVER-2 bin]$ exit
logout
Connection to SERVER-2 closed.
Any help would be really appreciated? Thanks in well advance!
You can iterate you log file for each server by putting in shell script as:
count=1
while read -r line;
do
echo ${line} | sed -n ${count}p | grep -E '[1-9]'
((count++))
done < input-data-file.log
apart from this you can accumlate whole data in an another file and than sort it as per your needs ex:
cat input-data-file.log |grep -E '[1-9]' > output.txt
It will give you the following output:
ACTIVE: 7
WAITING_ON_IO: 3
01:36:18|[user@SERVER-1 bin]$ ./script.sh -list
ACTIVE: [328465405, 328460561, 328465417, 328465409, 328465411]
WAITING_ON_IO: [328465211, 328465267, 328466202]
01:36:33|[user@SERVER-1 bin]$ exit
Connection to SERVER-1 closed.
01:36:43|[user@SERVER-2 bin]$ ./script.sh
ACTIVE: 1
HALTED: 4
WAITING_ON_IO: 7
01:36:51|[user@SERVER-2 bin]$ ./script.sh -list
ACTIVE: [1731005633, 1731007235]
HALTED: [1729578637, 1729078919, 1729411521, 1730174742]
WAITING_ON_IO: [1578123006, 1578122748, 1578122627, 1578121867,
1578122892, 1578121839, 1578122653, 1578122731, 1578122789, 1578122942,
1578121834, 1578121868, 1578121795, 1578122746, 1578122644]
01:36:58|[user@SERVER-2 bin]$ exit
Connection to SERVER-2 closed.
01:37:49|[user@SERVER-3 bin]$ ./script.sh
01:37:57|[user@SERVER-3 bin]$ ./script.sh -list
01:38:05|[user@SERVER-3 bin]$ exit
Connection to SERVER-3 closed.