Обратный вывод столбца с командой сортировки

Вы должны написать «редактор конфигурации» в тире (я думаю, что он установлен по умолчанию) и перейдите в apps -> totem

, там вам дается множество вариантов в правой части редактора. В нижней части этих вариантов находится тот, что касается Goom под названием «visual»

переименовать его в «GOOM: что за GOOM!» который является значением по умолчанию

1
задан 17 January 2016 в 08:12

1 ответ

Есть много и много способов сделать это. Steeldriver уже дал вам классический подход awk. Вот несколько других вариантов:

Используйте sed для захвата двух групп символов без пробелов (\S), а затем переключите их:
... | sed -E 's/\s*(\S+)\s+(\S+)/\2 \1/'
Используйте perl. Его переключатель -a позволяет работать как awk. Он автоматически разделяет каждую строку ввода на пробелы и сохраняет каждое поле в качестве элемента массива @F. Поэтому первое поле будет $F[0], второе $F[1] и т. Д .:
... | perl -lane 'print "$F[1] $F[0]"'
Используйте Perl для всего:
perl -lane '$k{$_}++ for @F; }{ print "$_ $k{$_}" for keys(%k)' "$1"
Здесь perl читает входной файл по строкам и применяет сценарий к каждому линия. $k{$_}++ for @F сохраняет каждое слово (каждое поле из @F) в качестве ключа в хэше %k и увеличивает каждое связанное значение на каждый раз, когда будет видно слово. Затем, после того, как файл был обработан (это означает, что }{ означает), он будет печатать слово ($_) и количество раз, которое он видел ($k{$_}) для каждой клавиши, сохраненной в хеше. Используйте awk для всего:
awk '{for(i=1;i<=NF;i++){a[$i]++}}END{for(i in a){print i,a[i]}}' "$1"
Первый цикл for перебирает по каждому полю и добавляет его к значению, связанному с этим полем в массиве a. Затем, в конце файла, он перебирает каждый элемент в a и печатает элемент (слово) и связанное с ним значение (количество раз, когда было замечено это слово). Используйте оболочку с исходным конвейером:
... | while read a b; do echo "$b $a"; done
6
ответ дан 23 May 2018 в 14:15

Другие вопросы по тегам:

Похожие вопросы: