Как я могу использовать pipe в конкретном исполнении находки (в bash) - PullRequest
1 голос
/ 10 мая 2011

Я должен создать CSV с выводом команды оболочки; файл csv должен содержать для каждой строки некоторую информацию, полученную с помощью команды stat, а в последнем столбце md5sum (только сумма без имени файла)

Я попробовал какую-то команду, такую ​​как:

find . -exec stat --printf='"%a";"%F"' {} \; -exec sh -c "md5sum $1 | cut -b-32" {} {} \;

но этот блок и спроси у меня для ввода

и это,

find . -exec stat --printf='"%a";"%F";' {} \; -exec md5sum {} | cut -b-32 \;

но в этом случае труба не работает.

Как я могу это решить?

1 Ответ

3 голосов
/ 10 мая 2011

Я думаю, что вы {} и ; неуместны.Это отлично работает для меня в Linux:

find . -exec stat --printf='"%a";"%F";' {} \; -exec sh -c "md5sum {} | cut -b-32" \;

Обновление 1

Вы можете объединить все в одну опцию -exec, например, также:

find . -exec sh -c "stat --printf='\"%a\";\"%F\";' {} && md5sum {} | cut -b-32" \;
...