Другой awk
подход, который сначала генерирует заголовок сам по себе, а затем заполняет матрицу 1 для каждого ключа в массиве head
, существует в текущей строке ввода, иначе 0 , если не существует.
Мы использовали grep
для получения только -o
чисел, которые соответствуют пустой строке на левом краю числа\b
(так же, как \<
мы использовали в awk
для левой и правой сторон ).
awk 'NR==FNR { !head[$1]++; next }
{ printf $1; for (x in head) { printf (x?FS:"") ($0 ~ "\\<" x "\\>") }; print ""
}' <(grep -o '\b[0-9]\+' infile) infile
Вывод:
name1 1 1 1 0 0 1 0 0 0 0
name2 0 0 1 1 1 0 0 0 0 0
name3 0 0 0 0 0 1 0 0 0 0
name4 0 0 0 0 0 0 1 1 0 0
namex 0 0 0 0 0 0 0 0 1 1
Вы можете сгенерировать заголовок и вставить его в первую строку входного файла,тогда awk
будет так же просто, как:
awk 'NR==1{ split($0, head); next }
{ printf $1; for (x in head){ printf (x?FS:"") ($2 ~ "\\<" head[x] "\\>" ) };
print "" }' infile
Baobab , скриншот приложения у вас есть,
показывает , где используемое пространство исходит из , то есть , какие файлы заполняют заполненное пространство ;
он не показывает вам свободное место.
Если вы хотите увидеть свободное пространство (или просто тест на кислотность ), используйте команду df
или System Monitor
утилиту GNOME