Вы правильно используете tr
. Но вам необходимо выполнить sort
, прежде чем использовать uniq
, потому что uniq
просматривает только соседние строки. Итак, у нас есть
cat file.txt | sort | uniq -c | sort -r | awk '{print $2, $1}' | head -n 10
Также, как вы можете видеть, использование -k
и -n
для сортировки в этом случае не нужно (хотя и не ошибочно).
Чтобы не записывать историю, вы можете ввести unset HISTFILE
в текущем сеансе (для bash)
Зависит от оболочка. В Bash вы можете управлять историей двумя способами :
Отключить сохранение истории с помощью set + o history
и повторно включить его с помощью set -o history
(обратите внимание на перевернутые плюс и минус). Если история отключена, введенные команды не будут сохраняться в журнале истории, но будут доступны предыдущие.
Задайте файл, используемый для сохранения истории, установив HISTFILE
( HISTFILE = ~ / somehistoryfile
). Вы можете полностью отключить его, сняв значение переменной с помощью unset HISTFILE
. Если вы отключите файл истории, у вас по-прежнему будет доступ к истории выполнения во время работы оболочки. Вы также можете установить HISTFILESIZE
, чтобы контролировать количество команд, сохраняемых в файле.
Предотвратить сохранение определенных команд в истории с помощью HISTCONTROL
и / или HISTIGNORE
. Установка для HISTCONTROL
значения ignorespace
укажет оболочке не сохранять командные строки, начинающиеся с пробела. HISTIGNORE
может содержать шаблоны команд, которые не следует сохранять в истории. например HISTIGNORE = 'ls: ls *'
предотвратит сохранение строк, содержащих только ls
или ls
, пробел и все, что после него.
Для оболочки, страдающей амнезией, вам нужно будет применить одну из этих настроек либо вручную при открытии оболочки, либо установить их в каком-либо сценарии запуска оболочки.
Один из вариантов - создать, скажем, ~ / .bashrc.nohist
с:
# include the standard startup files as --rcfile will override them
if [ -f /etc/bash.bashrc ] ; then
. /etc/bash.bashrc
fi
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
# disable history completely
HISTSIZE=0
# disable the history file
unset HISTFILE
# we could even set a reminder in the prompt
PS1="[nohist] $PS1"
, а затем настроить запуск оболочки с помощью bash --rcfile ~ / .bashrc.nohist
. Настройте сценарий по вкусу.