Portál AbcLinuxu, 10. května 2025 05:27
POLE=("aaaaaaaaaa" "bbbbbbbbbb" "cccccccccc" "dddddddddd" "eeeeeeeeee" "ffffffffff" "gggggggggg" "hhhhhhhhhh" "iiiiiiiiii") Když je proměnná VOLBA=0 aaaaaaaaaa bbbbbbbbbb Když je proměnná VOLBA=1 aaaaaaaaaa bbbbbbbbbb cccccccccc Když je proměnná VOLBA=2 bbbbbbbbbb cccccccccc dddddddddd Když je proměnná VOLBA=3 cccccccccc dddddddddd eeeeeeeeee Když je proměnná VOLBA=4 dddddddddd eeeeeeeeee ffffffffff Když je proměnná VOLBA=5 eeeeeeeeee ffffffffff gggggggggg
Řešení dotazu:
for cisloriadku v range(0-pocetriadkov): ak $cisloriadku=>VOLBA-1 a $cisloriadku<=VOLBA+1: vypis $riadokSamozrejme predpokladám že prvy riadok ma poradové číslo 0.
test "$VOLBA" -gt 0 && echo ${POLE[$(($VOLBA-1))]} echo ${POLE[$VOLBA]} test "$VOLBA" -lt $((${#POLE[@]}-1)) && echo ${POLE[$(($VOLBA+1))]}Může-li $VOLBA obsahovat divoké hodnoty úplně mimo rozsah, je zapotřebí testovat jak horní tak spodní rozsah při každém výpisu, ale to už lze snadno úpravou uvedeného...
head -n $((VOLBA+2)) soubor.txt | tail -n 3
$VOLBA
aspoň o dva menší než počet řádků.
awk "NR>=$VOLBA && NR<=$VOLBA+2 {print}"
awk "NR>=$VOLBA && NR<=$VOLBA+2 {print}" soubor.txtnebo přes standardní vstup
awk "NR>=$VOLBA && NR<=$VOLBA+2 {print}" <soubor.txtnebo přes rouru
producent | awk "NR>=$VOLBA && NR<=$VOLBA+2 {print}"To jsou základní způsoby, které se u filtrů obvykle používají.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.