Ваша непосредственная проблема заключается в том, что 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
(сообщения для пользователя). #!/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
Хотя принятый ответ правильный, существует более надежный и -многофункциональный вариант, который может предоставить вам большую гибкость:
# 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
.