Cinnamon, как и GNOME, из которого он был создан, перезапустит сеанс, когда вы наберете r
в окне Alt-F2 . Он просто говорит ему повторно -выполнить себя, поэтому он не вызывает новую команду, а говорит оконному менеджеру Cinnamon повторно -выполнить.
Вы можете сделать:
$ awk -F'[ =,]' 'BEGIN{ OFS=","; print "Name","number"; }/./{print $2,$4}' input.txt
Name,number
ABC,3
EFG,2
PQR,2
Поскольку вы использовали тег sed
:
{
echo Name,number
sed -e '/./!d' \
-e 'h; s/[^,]*,//; s/,.*//' \
-e 'x; s/^type //; s/=.*//' \
-e 'G; y/\n/,/' input.txt
} >output.txt
Сначала используется echo
для вывода заголовка. Затем команда sed
удаляет все пустые строки и извлекает нужные данные из каждой оставшейся строки. Вывод записывается в output.txt
.
Чтобы извлечь нужные данные, сценарий sed
сначала сохраняет копию исходной строки ввода в области хранения, используя h
. Затем он удаляет все до первой запятой и после следующей запятой, чтобы получить номер. Затем он заменяет сохраненную строку из пробела на x
и выполняет аналогичную операцию, чтобы получить метку перед символом =
. Затем два результата объединяются с помощью G
, а символ новой строки, который вставляется sed
, заменяется запятой с помощью команды y///
.
Замените пробел/=/ новой строкой, что гарантирует отсутствие в пространстве шаблонов. Верните третий маркер, а затем разрежьте пространство шаблона так, чтобы 2-е и четвертое поля вышли на передний план. Которые затем печатаются через P
sed -ne '
1{x;s/^/Name,Number/p;x;}
/[^[:space:]]/!d
y/ =,/\n\n\n/;s/\n/,/3
s/.*\n\(.*\)\n.*,/\1,/;P
' input.txt
выход:
Name,Number
ABC,3
EFG,2
PQR,2