Найдите порты FreeBSD, зависящие от другого порта.

Ваша непосредственная проблема заключается в том, что tr не делает то, что вы думаете. tr выполняет замену символа , а не замену строки. Команда tr "tokenized" "sampa" заменяет t на s , o на a , ] k на m , ( e на p отменяется последующим появлением e ) и n , i , z , e и d по a .

Чтобы выполнить замену строки, вы можете использовать sed.Но это несколько неудобно, и исправить это сложно. Для простых манипуляций со строками используйте конструкции манипуляций со строками оболочки вместо внешних инструментов.

В Tcsh отсутствуют конструкции для работы со строками. Но (t) csh не был оболочкой командной строки уровня 1 в течение последних 20 лет или около того, а никогда не подходил для написания сценариев . Только не пишите скрипты csh.

Также:

  • Никогда не устанавливайте LC_ALL ни на что иное, кроме C (или его синоним POSIX ). LC_ALL переопределяет все категории, и это может вызвать проблемы. Чтобы установить значение по умолчанию для всех категорий, используйте LANG . Но в сценариях обычно нужен C , за исключением LC_CTYPE (набор символов) и LC_MESSAGES (сообщения для пользователя).
  • Строковые манипуляции в sh выполняются с помощью раскрытия параметра .
  • В обычном sh нет конструкции замены строк, но в bash есть.
  • Всегда используйте двойные кавычки при замене переменных.
#!/bin/bash
export LC_ALL=C
for f in /home/users0/me/master/me/LookupScripts/Tokenized/*.txt; do
  g="${f##*/}"
  h="${g//tokenized/sampa}"
  ./a4.lookup <"$f" >"Sampa/$h.txt"
end

6
06.08.2011, 15:54
1 ответ

Хотя принятый ответ правильный, существует более надежный и -многофункциональный вариант, который может предоставить вам большую гибкость:

# pkg query %ro python27
misc/mc
devel/talloc
lang/python2
lang/python
devel/git
devel/tevent
databases/tdb
devel/py-setuptools
dns/py-dnspython
devel/py-iso8601
net/samba48

Это даст вам обратные зависимости для локально установленных портов. В некоторых случаях вы можете захотеть перечислить ВСЕ существующие зависимости на этом порту, в этом случае pkg rqueryможет дать вам эту информацию:

# pkg rquery %ro python27|wc -l
    3758

Пожалуйста, обратитесь к man pkg-queryза полным списком возможных флагов запроса, они также должны работать для pkg-rquery.

0
27.01.2020, 20:24

Теги

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