Portál AbcLinuxu, 12. listopadu 2025 06:55
soubor.txt: prvni 45 21 32 druhy 12 321 21 a bash mi vypíše: v prvním řádku: 1)prvni, 2)45, 3)21 4)32 ...atdMohl byste mě něko navést na nějakou stránku nebo tak něco. Přečetl jsem už poměrně dost stránek o bashi, ale jediné co umím je vypisovat to po částech takhle prvni pak 45 pak 21 pak32 pak druhy, ale nevim, jak zařídit, aby si to všímalo řádků.
read, na složitější věci se pak hodí awk.
man tr man sed
source je nejaky soubor
for x in `grep -v ^# $source | awk '{print $1,$2,$3,$4,$5,$6}'`; do
echo x
done;
Jak udělat aby se mi vypsal soubor řádek po řádku, takhle se mi vypisuje slovo od slova ať dělám co dělám.
while read -r radek; do echo $radek; done < soubor.txt
Jestli je to ono, tak nějaký příklad najdete v man read
for x in `grep -v ^# $source | awk '{print $1"|"$2"|"$3"|"$4"|"$5"|"$6}'`; do
...
a pak ty | odstraním a roztřídím, protože kdybych do toho print dal mezeru, bralo by to jako další řádek
#!/bin/sh
source=${3}
cisloz="10"
cislo="0"
cislo2="0"
for x in `grep -v ^# $source | awk '{print $1}'`; do
cislo2=`expr $cislo2 + 1`
done
TC=/sbin/tc
IPTABLES=/sbin/iptables
INET_IFACE=eth0
LAN_IFACE=eth1
$TC qdisc del dev $LAN_IFACE root
$TC qdisc add dev $LAN_IFACE root handle 1:0 htb
$TC class add dev $LAN_IFACE parent 1:0 classid 1:1 htb rate ${1}kbit ceil ${2}kbit burst 64k
$TC qdisc del dev $INET_IFACE root
$TC qdisc add dev $INET_IFACE root handle 2:0 htb
$TC class add dev $INET_IFACE parent 2:0 classid 2:1 htb rate ${1}kbit ceil ${2}kbit burst 64k
echo "Celkem rate a ceil na kartu: ${1}/${2}"
echo "Rozdeleni dle souboru: ${3}"
echo "IP adresa Download Upload"
for x in `grep -v ^# $source | awk '{print $1"|"$2"|"$3"|"$4"|"$5}'`; do
x=`echo $x | sed 's/|/ /g'`;
x1=`echo $x | awk '{print $1}'`
x2=`echo $x | awk '{print $2}'`
x3=`echo $x | awk '{print $3}'`
x4=`echo $x | awk '{print $4}'`
x5=`echo $x | awk '{print $5}'`
echo $x1" "$x2/$x3" "$x4/$x5
cislo=`expr $cislo + 1`
cislo2=`expr $cislo2 + 1`
cisloz=`expr $cisloz + 1`
$TC class add dev $LAN_IFACE parent 1:1 classid 1:$cisloz htb rate ${x2}kbit ceil ${x3}kbit burst 64k
$IPTABLES -t mangle -A FORWARD -i $INET_IFACE -d $x1 -j MARK --set-mark $cislo
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p all -d $x1 -j MARK --set-mark $cislo
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p tcp -d $x1 -j MARK --set-mark $cislo
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p udp -d $x1 -j MARK --set-mark $cislo
$IPTABLES -t mangle -A OUTPUT -o $INET_IFACE -p icmp -d $x1 -j MARK --set-mark $cislo
$TC filter add dev eth1 parent 1:0 protocol ip handle $cislo fw flowid 1:$cisloz
$TC class add dev $INET_IFACE parent 2:1 classid 2:$cisloz htb rate ${x4}kbit ceil ${x5}kbit burst 64k
$IPTABLES -t mangle -A FORWARD -i $LAN_IFACE -s $x1 -j MARK --set-mark $cislo2
$IPTABLES -t mangle -A INPUT -i $LAN_IFACE -p all -d $x1 -j MARK --set-mark $cislo2
$IPTABLES -t mangle -A INPUT -i $LAN_IFACE -p tcp -d $x1 -j MARK --set-mark $cislo2
$IPTABLES -t mangle -A INPUT -i $LAN_IFACE -p udp -d $x1 -j MARK --set-mark $cislo2
$IPTABLES -t mangle -A INPUT -i $LAN_IFACE -p icmp -d $x1 -j MARK --set-mark $cislo2
$TC filter add dev $INET_IFACE parent 2:0 protocol ip handle $cislo2 fw flowid 2:$cisloz
done
data se načítají ze souboru:
#IP download upload 192.168.1.2 16 512 64 512 192.168.1.3 256 1024 256 1024 192.168.1.5 256 1024 256 1024
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.