Я пытаюсь обработать вывод git ls-files
в программе Java. Использование просто:
java Test $(git ls-files)
Test.java:
public class Test {
public static void main(String[] args) {
for (String s : args) {
System.out.println(s);
}
}
}
, который просто выводит все аргументы на данный момент.
Вывод git ls-files
:
input $.csv
input_1.csv
input_2.csv
input_3.csv
Обратите внимание, что первый, input $.csv
, имеет пробел в середине.
Мой желаемый результат, конечно:
input $.csv
input_1.csv
input_2.csv
input_3.csv
Однако, что печатает Testout is:
input
$.csv
input_1.csv
input_2.csv
input_3.csv
Пробел фактически нарушает мои ожидания.
Поэтому я попытался sed
обернуть все имена файлов в кавычки:
java Test $(git ls-files | sed "s/\(.*\)/'\1'/g")
вывод $(git ls-files | sed "s/\(.*\)/'\1'/g")
соответствует ожидаемому:
'input $.csv'
'input_1.csv'
'input_2.csv'
'input_3.csv'
Однако Test все равно печатает один и тот же вывод с sed
и без него. Что может быть не так с моими сценариями?