Теперь существует дополнительный KeeFox для Firefox для Linux.
Должен установить все моно пакеты:
aptitude install mono-complete
Необходимо загрузить последний совместимый с Версией Linux Дополнения KeePass FireFox.
Необходимо будет установить PassiFox для FireFox и KeePassHttp для KeePass для соединения KeeFox и KeePass (Который является странным, но он работает).
Настройте KeeFox с каталогом к плагину KeePassRPC.
/usr/lib/keepass2/plugins
и dir установки KeePass2
/usr/bin
Настоящая проблема здесь состоит в том, что количество столбцов не равно. У Вас есть некоторые строки с шестью столбцами и некоторые с восемь.
Таким образом, то, что необходимо сделать, должно добавить пустой x-th и y-th поле, где они отсутствуют (X и Y могли бы быть 5 и 6, или возможно 3 и 4).
Вы могли сделать это как это:
F="\\(\\S\\S*\\)\\s*\\s"
# This is 0160, a nonbreaking space
G=" "
| sed -e "s/^$F$F$F$F$F$F*$/\\1 \\2 \\3 \\4 \\5 $G $G \\6/g" \
| column -t
sed
отождествляет те строки только с шестью полями и добавляет два дополнительных поля в соответствующих случаях. С вышеупомянутым я добираюсь
all tcp 117.54.56.131:80 <- 10.42.100.211:63752 ESTABLISHED:ESTABLISHED
all tcp 10.42.120.201:63752 -> 219.224.67.112:31180 -> 137.51.59.141:80 ESTABLISHED:ESTABLISHED
all tcp 77.221.237.24:443 <- 10.42.100.117:59999 ESTABLISHED:ESTABLISHED
РЕДАКТИРОВАНИЕ 1:
Один путь мог быть чем-то как:
getStats | grep ESTABLISHED | column -t | sed \
-e 's/\(<-\|->\)[ ]\+/\1 /g' \
-e 's/[ ]\+\([^ ]\+$\)/\t\1/' | column -t -s " "
^--- TAB
all tcp 117.54.56.131:80 <- 10.42.100.211:63752 ESTABLISHED:ESTABLISHED
all tcp 10.42.120.201:63752 -> 219.224.67.112:31180 -> 137.51.59.141:80 ESTABLISHED:ESTABLISHED
all tcp 77.221.237.24:443 <- 10.42.100.117:59999 ESTABLISHED:ESTABLISHED
Сначала использование column -t
затем удаляя все последовательные пробелы после <-
и ->
с одним пространством, затем разделяя последний столбец с tab
и выполнение нового column -t -s '<TAB>'
Если на командной строке: -s
"Ctrl+VTAB" (иначе. tab
) как разделитель для column
. Дополнительно используйте tr
заменять вкладки для пробелов сначала.
Установка sed
к одному op и пропуску grep
и некоторые другие модификации:
getStats | column -t | \
sed '/ESTABLISHED/!d;s/\(<-\|->\) */\1 /g;s/ *\([^ ]*\)$/\t \1/' | \
column -t -s " "
^--- TAB
РЕДАКТИРОВАНИЕ 2:
Даже при том, что Вы находите awk
и printf
грязный я даю это как опцию. С этим сценарием можно вместо этого сказать:
getStats | scrip_name ESTABLISHED
Одним преимуществом является гибкость для настройки и т.д.
Любой способ, которым смотрит на него, нужно или проанализировать данные дважды или сохранить meta о данных и печати в конце.
Короче говоря то, что это делает:
(Разделение между awk -v pat="$1" '
и отдых кода происходит только из-за пользовательского, выделяют HTML-comment на этой странице),
#!/bin/bash
# Argument 1 is what to match against.
awk -v pat="$1" '
# Iff match pat.
$0 ~ pat {
# Highest number of columns.
if (NF > cols)
cols = NF
# Increment number of lines.
++nl
# Number of fileds on this line.
lines[nl] = NF
for (i = 1; i <= NF; ++i) {
# IFF not last field and
# width of field is > current width of column, store it in wc_a.
if (i < NF && (wc = length($i)) > wc_a[i])
wc_a[i] = wc
# Save columns in array lines[LINE COLUMN]=FIELD_DATA.
lines[nl,i] = $i
}
}
END {
# Loop lines.
for (i = 1; i <= nl; ++i) {
# Print all but last.
for (j = 1; j < lines[i]; ++j)
printf("%-*s ", wc_a[j], lines[i,j])
# Print "missing" columns.
for (; j < cols; ++j)
printf("%-*s ", wc_a[j], "")
# Print last column field.
printf("%s\n", lines[i,lines[i]])
}
}
' "$2"
# $2 is either file or empty: expect pipe.
СТАРЫЙ:
Вот немного сценария Perl для выполнения то, что Вы хотите:
$ getStats | grep ESTABLISHED | \
perl -ne '
chomp @a;
@a = split(" ",$_);
map { print "$_," } @a[0..4];
if ($a[5] !~ m/>/) {
map { print " , ,$_," } @a[5..$#a];
print "\n";
} else {
map { print "$_," } @a[5..$#a];
print "\n";
}
' | column -t -s ','
Результаты в этом выводе:
all tcp 117.54.56.131:80 <- 10.42.100.211:63752 ESTABLISHED:ESTABLISHED
all tcp 10.42.120.201:63752 -> 219.224.67.112:31180 -> 137.51.59.141:80 ESTABLISHED:ESTABLISHED
all tcp 77.221.237.24:443 <- 10.42.100.117:59999 ESTABLISHED:ESTABLISHED
Я проявил немного отличающийся подход с Вашим column -t
и измененный мой вывод Perl так, чтобы это представило запятую"", между каждым полем. Так вывод, прежде чем 'команда столбца похожа на это:
all,tcp,117.54.56.131:80,<-,10.42.100.211:63752, , ,ESTABLISHED:ESTABLISHED,
all,tcp,10.42.120.201:63752,->,219.224.67.112:31180,->,137.51.59.141:80,ESTABLISHED:ESTABLISHED,
all,tcp,77.221.237.24:443,<-,10.42.100.117:59999, , ,ESTABLISHED:ESTABLISHED,
column -t -s ','
затем коаксильные кабели column
разделять на символах разделителя вместо этого, которые я нахожу легче иметь дело с затем просто пробелом.
Введение запятых на каждую строку чувствует немного hacky мне, но это делает задание, это могло, вероятно, быть оптимизировано далее, но это - рабочее решение.