Это обычно упоминается как "перенаправление портов". Вот отрывок из официальной документации:
Источник: http://doc.pfsense.org/index.php/How_can_I_forward_ports_with_pfSense%3F
Если у Вас все еще есть проблемы, заставляя это работать правильно, посмотрите Порт, Вперед Диагностирующий документ.
С другой стороны, Вы могли отсортировать со стороны первого поля, которое запускается при смещении 8:
$ sort -k1.8 < file
[a2--0-boot] /dev/sda2 179M
[b2--1-boot] /dev/sdb2 1008M
[a8--2-home] /dev/sda8 2.0G
[b11-2-home] /dev/sdb11 2.0G
[a9--1-var] /dev/sda9 996M
[b14-2-var] /dev/sdb14 2.0G
Если Ваша система имеет a rev
команда, можно сделать:
$ rev < file | sort -k3 | rev
[b11-2-home] /dev/sdb11 2.0G
[a8--2-home] /dev/sda8 2.0G
[a9--1-var] /dev/sda9 996M
[b14-2-var] /dev/sdb14 2.0G
[a2--0-boot] /dev/sda2 179M
[b2--1-boot] /dev/sdb2 1008M
Только инвертировать первое поле:
rev1() {
sed -e 's/^/\
/;:1' -e 's/\(.*\n\)\([^[:blank:]]\)/\2\1/;t1' -e 's/\n//'
}
rev1 < file | sort | rev1
Используйте версию для возвращения строк. Используйте awk для печати третьего столбца сначала. Используйте вид для вида, затем используйте сокращение для удаления первого столбца снова и версии использования для возвращения строк снова:
tweedleburg:~ # rev test | awk '{printf $3;printf " ";print}'| sort|cut -d " " -f 2-|rev
[a8--2-home] /dev/sda8 2.0G
[b11-2-home] /dev/sdb11 2.0G
[a9--1-var] /dev/sda9 996M
[b14-2-var] /dev/sdb14 2.0G
[a2--0-boot] /dev/sda2 179M
[b2--1-boot] /dev/sdb2 1008M
Решение для Perl:
# !/usr/bin/perl while (<>) { push @r, [ $_, split /\s+/, $_ ]; } map { print $_->[0] } sort { (reverse $a->[1]) cmp (reverse $b->[1]) } @r;
Данные считываются с stdin в цикле с условием продолжения и готовятся к Schwartzian, Преобразовывают.
Последние 3 строки являются одной инструкцией.
while
циклично выполнитесь здесь так или иначе для чтения в, таким образом, я являюсь теоретическим, но притворяюсь, что массив существует ранее: sort { (substr $a, 7) cmp (substr $b, 7) }
.
– goldilocks
20.01.2014, 14:34
Спасибо парни, но я думаю, что мой является лучшим:
cat inputfile | rev | sort -k7 |rev
Больной и скрученный, но это работает просто великолепно. Tho интересно, почему это не работает:
tac inputfile | sort -k7 | rev
rev
иrev1
сделаны на обеих сторонахsort
. Это просто инвертируется дляsort
и инвертированный снова для возвращения к оригиналу. – Stéphane Chazelas 20.01.2014, 18:17