Вопрос о расширении параметров
У меня есть 2 файла в подкаталогах user / admin / 1/2 / [ac].
Файлы preQC_1.txt и preQC_2.txt – оба из которых будут входами в моем инструменте.
- Удаление GDB на Mac
- Удалить команду sandbox-simplify из OS X sierra?
- Mint 17 через EFI-заглушку на 32-битном MacBook, клавиатура не работает; отлично с загрузчиком Grub
- Как установить htop внутри mac os x
- Увеличьте объем на eMac P69, используя FreeBSD 10.3
Я использую «$ {f ## * /}» для preQC_1.txt в моем цикле for
for f in ~/1/2/*/*_1.txt; do exptool input1= "${f##*/}" input2= "{$f%_1.txt}_2.txt"
Моя программа говорит, что файл '{$ f% _1.txt} _2.txt', и я на 100% уверен, что неправильно использую расширение параметра. Для input2, как я могу убедиться, что я ТОЛЬКО получаю 'preQC_2.txt' (имя файла + расширение без списка каталогов)?
EDIT: Я пробовал комбинировать «$ {f ## * /}" и {$ f% _1.txt} _2.txt ", но это фактически расширяется до 'user / admin / 1/2 / a / preQC_1.txt_2.txt '
- debian jessie backports wifi и bluetooth
- Как проверить, включен ли пользователь root в Mac?
- идеальный дистрибутив для старого рабочего стола mac (ppc g3) (320mb ram)
- Debian 7 на Macbook
- Установка Fedora 17 на Mac Book Pro с середины февраля
- Как исправить мое развертывание FastCGI Pinax / Django?
- Использование технологии Apple Keyboard OSX в Linux Destop
- Как разобрать вывод для конкретного ответа (создание атрибута расширения для JAMF JSS)
2 Solutions collect form web for “Вопрос о расширении параметров”
for f in ~/1/2/*/*_1.txt; do file_without_path="${f##*/}" exptool input1= "${file_without_path}" input2= "${file_without_pathf%_1.txt}_2.txt" done
Вы просто сделали синтаксическую ошибку: вы написали "{$f%_1.txt}_2.txt"
а правильная форма – "${f%_1.txt}_2.txt"
(вы "${f%_1.txt}_2.txt"
$
).
π
Edit: woops, я понял, что неправильно, потому что в блоке "${f%_1.txt}_2.txt"
f
-прежнему является user/admin/1/2/a/preQC_1.txt
поэтому в основном "${f%_1.txt}_2.txt"
– это user/admin/1/2/a/preQC_2.txt
, чего вы не хотите.
Я бы рекомендовал сначала обновить значение f
, например
for f in ~/1/2/*/*_1.txt f=${f##*/} do exptool input1= "$f" input2= "${f%_1.txt}_2.txt" done
который в значительной степени присоединяется к ответу Хауке Лейджинга.