Что такое * .sorted команда и почему она не работает в моем bash?

В Bash Guide for Beginners ( раздел 3.2.1.2. Локальные переменные ) есть примерная команда, которая должна отображать все локальные переменные, которые не входят в переменные окружения, или, как я полагаю,

diff set.sorted printenv.sorted | grep "<" | awk '{ print $2 }' 

Теперь я считаю, что я все понимаю об этой команде, кроме *.sorted part. Кроме того, эта команда не работает на моем Bash специально из-за вышеперечисленных элементов. Вот ответ (это полис Нет такого файла или каталога ):

 diff: set.sorted: Nie ma takiego pliku ani katalogu diff: printenv.sorted: Nie ma takiego pliku ani katalogu 

Стоит отметить, что я использую Ubuntu 14.04 без каких-либо изменений в установке по умолчанию.

В любом случае из-за этого я не могу проанализировать эту команду в своем Bash и не смог найти что-либо об этом в Google, кроме самого учебника, из которого я взял эту команду.

Буду благодарен за подробное объяснение, так как раньше я никогда не встречал такого выражения.

One Solution collect form web for “Что такое * .sorted команда и почему она не работает в моем bash?”

Они не являются выражениями, они являются именами файлов для файлов, созданных следующим образом:

  printenv | sort > printenv.sorted set | sort > set.sorted 

Это не ясно из документации, поэтому ваша путаница понятна!

Обратите внимание, что вам может потребоваться помощь diff и grep , заставляя их обрабатывать свои входы как текст (с -a ); переменные среды могут содержать значения, которые заставят их обрабатывать их вход как двоичные, что не принесет ничего полезного:

 diff -a set.sorted printenv.sorted | grep -a "<" | awk '{ print $2 }' 

Еще лучше, используйте comm для сравнения двух файлов:

 comm -23 set.sorted printenv.sorted 

Вы можете заменить файлы на замещения процесса:

 comm -23 <(set|sort) <(printenv|sort) 

чтобы избежать создания файлов.

  • Добавление префиксов / суффиксов в имена файлов без их повторного ввода?
  • Установите постоянную переменную среды для всех пользователей
  • Как назначить результат sed переменной
  • JAVA_HOME не установлен в скрипте при запуске с использованием sudo
  • sudo: разрешить одной команде устанавливать одну переменную среды
  • Экран - наследует среду текущего окна
  • CentOs 7 CronTab установлен JAVA_HOME
  • systemd: значение по умолчанию для переменной среды
  • Пытается получить доступ к переменной среды (массиву), объявленной в ~ / .profile из сценария оболочки
  • передать 1 переменную среды, используя sudo
  • (G) VIM использует другую $ PATH, чем моя система
  • Interesting Posts

    как перенаправить все электронные письма на один внешний адрес?

    Какие средства командной строки можно подключить из Unix к удаленным Windows?

    Печать значений из одного столбца в другой между двумя файлами на основе шаблонов в каждой строке

    Рекомендуемый способ переупаковки собственных пакетов deb, которые включают старые системные библиотеки

    Настройка DHCP для контейнеров LXC

    Markdown Viewer

    Какой самый безопасный (или самый элегантный или самый короткий) способ изменить в каталог, откуда вызывается скрипт?

    Права, разрешения и группы

    В моем сценарии bash не отображается окно консоли при выполнении

    CentOS 6 KVM-хост с CentOS 6 гостями kvm-clock включен большой временной дрейф

    Не удается загрузить Debian Jessie через debootstrap

    Поиск различного имени файла в цикле

    Правило IPTABLES для разделения пользователей

    Внести изменения в плагин регулятора CPU

    Релейный вывод терминала

    Linux и Unix - лучшая ОС в мире.