Hallo,
Ik probeer enkele 1000en overbodige lijnen uit de apt-get output te filteren.
Dit is groterdeels gelukt, maar er blijven er nog enkele hardnekkige over...
apt-get dist-upgrade gebruikt dpkg onderhuids. Hoewel ik het loop met -q (of -qq) , blijft dpkg zelf toch nog overbodige rommel uitsturen,
bv dit naar stdout:
(Reading database ... 10%
(Reading database ... 20%
(Reading database ... 30%
...
en bv dit naar stderr:
Extracting templates from packages: 10%
Extracting templates from packages: 20%
Extracting templates from packages: 30%
...
Het lukt me wel om de meer dan 1000 lijnen naar stdout eruit te filteren, maar niet om de overbodige lijnen naar stderr eruit te filteren.
Omdat ik zeker niet teveel eruit wil filteren, filter ik op "^..." om enkel lijnen eruit te filteren die beginnen met een bepaalde string. Bij het sturen van stderr naar stdout loopt dit echter mis, aangezien de "new line chars" op het einde van een lijn staan. Zo komt de stderr ergens in het midden van een lijn van stdout en dan pakt mijn filter ze niet mee...
Weet iemand hoe ik dit kan oplossen?
Momenteel probeer ik het zo (maar dit werkt dus niet voor de stderr)
apt-get -y -q dist-upgrade 2>&1 | grep -v "^(Reading database ... " | grep -v "^Extracting templates from packages: "
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
...
fi
Ik probeer enkele 1000en overbodige lijnen uit de apt-get output te filteren.
Dit is groterdeels gelukt, maar er blijven er nog enkele hardnekkige over...
apt-get dist-upgrade gebruikt dpkg onderhuids. Hoewel ik het loop met -q (of -qq) , blijft dpkg zelf toch nog overbodige rommel uitsturen,
bv dit naar stdout:
(Reading database ... 10%
(Reading database ... 20%
(Reading database ... 30%
...
en bv dit naar stderr:
Extracting templates from packages: 10%
Extracting templates from packages: 20%
Extracting templates from packages: 30%
...
Het lukt me wel om de meer dan 1000 lijnen naar stdout eruit te filteren, maar niet om de overbodige lijnen naar stderr eruit te filteren.
Omdat ik zeker niet teveel eruit wil filteren, filter ik op "^..." om enkel lijnen eruit te filteren die beginnen met een bepaalde string. Bij het sturen van stderr naar stdout loopt dit echter mis, aangezien de "new line chars" op het einde van een lijn staan. Zo komt de stderr ergens in het midden van een lijn van stdout en dan pakt mijn filter ze niet mee...
Weet iemand hoe ik dit kan oplossen?
Momenteel probeer ik het zo (maar dit werkt dus niet voor de stderr)
apt-get -y -q dist-upgrade 2>&1 | grep -v "^(Reading database ... " | grep -v "^Extracting templates from packages: "
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
...
fi