Основной сайт Flatpak не позволяет легко найти это, но исходный код Flatpak доступен на GitHub и построен способом, знакомым для большинства проектов на основе Autotools -:
git clone --recurse-submodules https://github.com/flatpak/flatpak.git
cd flatpak
./autogen.sh
./configure
make
sudo make install
Вам понадобится ряд зависимостей, которые подробно описаны в файле README.md
. Вам также, вероятно, потребуется настроить некоторые из флагов ./configure
в зависимости от вашей целевой среды.
Вы также можете предпочесть работать с архивом выпуска вместо клонирования репозитория.
Используйте массив для хранения всех сумм, затем в разделе END распечатайте их, но не нулевые суммы:
awk '/^[^0-9]/ {IX = $0} {SUM[IX] += $0} END {for (s in SUM) print s, SUM[s]?SUM[s]:""}' file
abc
ghi 89
iuy 123
tuy 12
def
Имейте в виду, что порядок, в котором индекс массива воспроизводится, например, в. (s in SUM)
не определено; если вам нужен вывод в порядке появления, необходимо принять дополнительные (простые )меры.
$ awk 'NR==1{val=$0;next}$0~/^[0-9]*/{sum+=$0}/^[^0-9]/{print val,sum;val=$0;sum=0}END{print val,sum}' a.txt
abc 0
def 0
ghi 89
tuy 12
iuy 123
NR==1{val=$0;next}
---> когда он читает первую строку, сохраняет значение в переменной val и читает следующую строку.
$0~/^[0-9]*/{sum+=$0}
--> если это числовое значение, просто просуммируйте его.
/^[^0-9]/{print val,sum;val=$0;sum=0}
--> если это не число, то просто напечатайте строку и сумму и сбросьте переменные val и sum
Печатать каждую альфа-строку без новой строки в конце, а затем выводить сумму плюс новую строку после сложения всех чисел, следующих за ней:
$ awk '
/[[:alpha:]]/ { printf "%s%s%s%s", ofs, sum, ors, $0; sum=ofs=""; ors=ORS; next }
{ ofs=OFS; sum+=$0 }
END { print ofs sum }
' file
abc
def
ghi 89
tuy 12
iuy 123