Есть ли смысл группировать похожие программы в один каталог?

Команда sedудаляет любой непечатаемый символ и табуляцию из содержимого каждой строки ввода. Количество строк не изменится (символы новой строки не удаляются, поскольку они не являются частью содержимого строки ), но может измениться количество символов или байтов. Проверьте еще раз с wc -cдля количества байтов, wc -mдля количества символов.

Регулярное выражение [^...]соответствует любому одиночному символу (, фактически сопоставляющему элемент ), а не в [...]. В данном случае это класс символов [:print:]и символ табуляции. $в начале строки заставляет bashзаменить \tбуквальным символом табуляции перед вызовом sed.

Класс символов [:print:]соответствует символам, которые могут быть напечатаны в текущей локали, то есть буквенно-цифровым символам, знакам препинания и пробелу (, но не табуляции, которая является управляющим символом ).

Другими словами, он удаляет все, что не является буквенно-цифровым символом, знаком пунктуации, пробелом или табуляцией.

Чтобы записать результат обратно в файл ("в -отредактировать место" ), некоторые sedреализации имеют для этого опцию -i; используйте sed -iили sed -i ''в зависимости от реализации. Убедитесь, что сначала создается правильный вывод, иначе вы можете уничтожить свои данные.

2
14.06.2021, 22:06
2 ответа

Хранение двоичных файлов в каталогах с соответствующими библиотеками является довольно распространенным явлением. Вариант использования — контроль версий. Скажем, когда у вас установлено несколько версий python (2.7, 2.7, 3... )и вам нужны все они, но вы хотите определить стандарт.

Обычно для этого используется пакет alternativesи программные ссылки на двоичный файл, например, из./usr/bin(с определениями в /etc/alternatives).

Одним из основных преимуществ также может быть использование порядка слева направо в $PATH. Например. когда вы переопределяете стандартные команды локальными версиями или сценариями, которые выполняют предварительные проверки (, скажем, сценарий, который помещает предупреждение перед shredфайлами ding ), можно было бы иметь их в каталоге, указанном в начале $PATH, поэтому локальная (пользовательская )версия запускается, а стандартная только через полный путь.

Дополнительные сведения по вашему вопросу :Перемещение двоичных файлов не является хорошей идеей :они могут полагаться на другие файлы в своем каталоге. Мягкая ссылка их самое большее. Или просто воспользуйтесь alternativesнабором инструментов -, который также помогает сохранять больше обзора.

5
28.07.2021, 11:24

Это зависит от...

Если у вас есть сотни таких программ, то возможно.

В противном случае, поскольку /usr/local/bin/находится в вашем $PATH, поместите свои программы в пользовательский каталог где-нибудь разумно и поместите соответствующие программные ссылки для каждой программы в /usr/local/bin/. Это не идеально, но позволяет избежать искажения PATH.

4
28.07.2021, 11:24

Теги

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