Снова о маршрутизации

awk переменные просто используются для своих значений, как и переменные в большинстве языков - они не перепарированы для выражений. С помощью этого можно делать все, что угодно:

a='15986327,415532694,850257614,875121642,20140819'
echo $a | awk -F, -v OFS=, '{print $1, $2, $4}'

(установка OFS, чтобы на выходе были запятые). Если в качестве переменной требуется b, Вы можете использовать:

b='$1, $2, $4'
echo $a | awk -F, -v OFS=, "{print $b}"

вместо этого, который заменяет b в выражении awk.


Все это говорит о том, что для этого вам не нужен awk. Это действительно работа для cut:

echo "$a" | cut -d, -f1,2,4

, которая выбирает поля 1, 2 и 4, используя , в качестве разделителя полей, без сложного двойного разбора кода. Именно для этого и делается cut.

1
29.08.2014, 22:14
1 ответ

Благодаря @garethTheRed, проблема была в iptables . В FORWARDING цепочке было установлено REJECT все, что я удалил из этой цепочки iptables -F FORWARDING (скорее разрушение, но я не очень хорошо знаком с iptables), затем добавлено:

iptables -A FORWARD -o eth1 -j ACCEPT
iptables -A FORWARD -i eth2 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
iptables -A FORWARD -i eth2 -j ACCEPT

Работает отлично!

1
27.01.2020, 23:52

Теги

Похожие вопросы