Jak mogę iterować po wszystkich liniach wyprowadzanych przez polecenie za pomocą zsh, bez ustawiania IFS?Jak mogę iterować po wszystkich liniach wyprowadzanych przez polecenie w zsh?
Powodem jest to, że chcę uruchomić polecenie dla każdego pliku wyjściowego za pomocą polecenia, a niektóre z tych plików zawierają spacje.
Eg, biorąc pod uwagę usunięty plik:
foo/bar baz/gamma
Oznacza to, że pojedynczy katalog 'foo', zawierająca podkatalogu 'bar baz', zawierający plik 'gamma'.
Następnie uruchomiony:
git ls-files --deleted | xargs ls
zgłosi w tym pliku jest obsługiwany jako dwa pliki: 'foo/bar' oraz '/ baz/gamma'.
Potrzebuję go do obsługi jako jeden plik: "foo/bar baz/gamma".
Czy twój system ma polecenie xargs? – lunixbochs
@lunixboches: Tak, ale nadal nie obsługuje poprawnie linii. – Arafangion
'git ls-files -z | xargs -0 ls' użyje separatorów zerowych (\ 0) zamiast białych znaków – lunixbochs