Следующий скрипт perl
выводит ваш входной файл ( markizy.txt
) в формате с разделителями табуляции, поскольку внутри полей есть пробелы.
#!/usr/bin/perl
while(<>) {
chomp;
s/ +(vsan|fcalias|pwwn) */\t$1 /g ;
s/ +\t/\t/;
if ($. > 1 && m/^zone name/) {
print $l,"\n";
$l = $_;
} elsif (eof) {
$l .= $_;
print $l,"\n";
} else {
$l .= $_;
};
};
Встроенная переменная perl
$.
- это номер текущей строки, поэтому сценарий избегает печати (пустая строка), когда имя зоны
находится в первой строке ввода. См. man perlvar
для получения подробной информации об этой и многих других переменных (и их длинных псевдонимах, таких как $ INPUT_LINE_NUMBER
для $.
).
Сохраните его в файл, сделайте его исполняемым с помощью chmod + x
и запустите. например с cat -T
для отображения вкладок ( ^ I
):
$ ./markizy.pl markizy.txt | cat -T
zone name Zone1_HOSTNAME01^Ivsan XXX^Ifcalias name STORAGEPORT_0^Ivsan XXX^Ipwwn xx:xx:xx:xx:xx^Ifcalias name STORAGEPORT_1^Ivsan XXX^Ipwwn xx:xx:xx:xx:xx^Ifcalias name STORAGEPORT_2^Ivsan XXX^Ipwwn xx:xx:xx:xx:xx
zone name Zone2_HOSTNAME02^Ivsan XXX^Ifcalias name STORAGEPORT_3^Ivsan XXX^Ipwwn xx:xx:xx:xx:xx^Ifcalias name STORAGEPORT_4^Ivsan XXX^Ipwwn xx:xx:xx:xx:xx^Ifcalias name HOSTNAME02^Ivsan XXX^Ipwwn xx:xx:xx:xx:xx
Канал к cat -T
предназначен только для того, чтобы показать вам, что на выходе поля, разделенные табуляцией (в противном случае они не сильно отличаются от пробелов). Не используйте его при запуске по-настоящему, просто перенаправьте в файл.Excel (или gnumeric
или Libre Office Calc
или почти любая другая электронная таблица) не должно испытывать затруднений при импорте текстового файла с разделением табуляцией - это стандартная возможность почти столько, сколько я могу помнить.
Запустите его как:
./markizy.pl markizy.txt > markizy.csv
Возможно, вам придется сообщить Excel, что данные разделены табуляцией, а не запятыми при импорте, или он может обнаружить этот факт сам.
В качестве альтернативы, если вы абсолютно уверены, что ни одно из полей данных не будет содержать запятых, замените все \ t
в скрипте запятыми, и вы получите разделение запятыми.
Я наконец нашел проблему в /usr/share/applications/mimeinfo.cache со следующей записью:
inode/directory=org.gnome.baobab.desktop;nemo.desktop;
изменить его обратно на:
inode/directory=nemo.desktop;
решил проблему.
Это поведение Chrome и ответ на вопрос Изменить Chromium с автоматического запуска Nautilus с помощью команды «Показать в папке» привели меня к решению.
РЕДАКТИРОВАТЬ:/usr/share/applications/mimeinfo.cache
регенерируется из .desktop
файлов, находящихся в папке /usr/share/applications/
. Первоначальная ошибка находится в org.gnome.baobab.desktop и появляется снова каждый раз, когда mimeinfo.cache регенерируется. Не понятно как это исправить.
Я обнаружил, что cat /usr/share/applications/mimeinfo.cache | grep baobab
даетinode/directory=nemo.desktop;org.gnome.baobab.desktop;
Однако у меня нет хрома -хром считается? В любом случае Super+E => Домашняя папка (nemo )все еще работает.
В довольно чистой системе у меня есть два файла baobab.desktop:-
/usr/share/app-install/desktop/baobab:org.gnome.baobab.desktop
/usr/share/applications/org.gnome.baobab.desktop