Как заставить Cygpath принимать входные данные из файла
Я заранее прошу прощения за этот вопрос, но я действительно застрял прямо сейчас, и я просто молюсь, чтобы кто-то там мог мне помочь.
У меня есть ряд c-файлов, которые мне нужно проверять по одному примерно в 100 подкаталогах, каждый из которых называется balance.d, balance.c или balancer.c. Я получил их список, используя find . -name "balance*"
и я могу выбрать один из тех, кто использует sed -n [NUM]p
, Это среда Windows, использующая Cygwin, и все эти каталоги передаются через Dropbox другим людям. Пути часто вовлекают места, и я сталкиваюсь с проблемой.
Я знаю, что cygpath -sw даст мне пути без пробелов. Моя конечная цель - получить каждый файл по одному с gcc path/to/file.c -o ./a.exe
Прямо сейчас у меня есть
cygpath -sw $ (echo find. -name "balance *" | sed -n 2p | awk '{gsub (/ /, "\")} 8')
... но cygpath не пройдет мое пространство. Это дает мне ошибку
awk: cmd. line:1: warning: escape sequence `\ ' treated as plain ` '
1 ответ
Поместите кавычки вокруг вашей подстановки команды, или результат из нее подвергнется разделению работы.
Также то, что вы делаете с частью AWK, не требуется.
Вы звоните echo
команда со следующими аргументами:
[find] [.] [-name] [balance*]
Как вы хотите, чтобы она вызывала команду find:
cygpath -sw "$(find . -name "balance*" | sed -n 2p)"