& Ldquo; найти & Rdquo; команду и трубопроводы его выход через другую программу

Друг,

Используйте команду chmod + x VMware-Workstation-7.1.2-full-301548.x86_64.bundle, затем введите команду

./VMware-Workstation-Full-7.1.2-301548.x86_64.bundle

Если произошла ошибка.

aptitude update
reboot
1
задан 23 February 2011 в 23:31

28 ответов

На самом деле я понял, что нижеследующее делает то, что я хочу в этом случае:

find . -maxdepth 1 -type d -print -exec svn info "{}" \; | grep URL

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 25 July 2018 в 22:26
  • 1
    Это должно сделать следующее: -exec sh -c & quot; ls {} | то, что & Quot; \; – João Pinto 23 February 2011 в 21:10
  • 2
    @ João Pinto: Нет, вы не должны вставлять {} в такой скрипт. Передайте это как аргумент. [F2] – geirha 24 February 2011 в 17:14
  • 3
    Вы не должны вызывать оболочку вообще. Решение Charbels намного лучше - тощее и чистое. Что вам нравится с вашей оболочкой? Шарбель просто может отказаться от бесполезной маскировки {}. – user unknown 20 March 2011 в 04:21

Вам нужна оболочка для интерпретации канала.

find . -maxdepth 1 -type d -print -exec sh -c 'LANG=C svn info "$1" | grep URL' _ {} \;

См. http://mywiki.wooledge.org/UsingFind для получения дополнительных примеров.

Хотя. Вместо этого я бы использовал for-loop для этого:

for svndir in ./*/.svn/; do dir=${svndir%/.svn/} echo "$dir" LANG=C svn info "$dir" | grep URL # or maybe just: sed '5!d;q' "$svndir/entries" done
1
ответ дан 25 July 2018 в 22:26
  • 1
    найти . -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" | grep URL 'дает мне следующую ошибку: & quot; find: отсутствующие аргументы в `-exec' & quot; – Charbel 24 February 2011 в 15:06
  • 2
    @Charbel, вам не хватает последней части, вам нужно прокрутить правую сторону, чтобы вы тоже получили часть _ {} \; :) – geirha 24 February 2011 в 17:12

Как правило, я нахожу xargs гораздо более разумным для использования, чем опция find -exec. Это особенно верно для ускорения процесса, так как для каждой строки вывода поиска не запускается отдельный «svn»:

find . -maxdepth 1 -type d | xargs svn info | grep URL

Если вы имеете дело со файлами со странными именами (пробелы, символы новой строки и т. Д. ), просто добавьте -print0 для поиска и -0 в xargs:

find . -maxdepth 1 -type d -print0 | xargs -0 svn info | grep URL

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

find . -maxdepth 1 -type d -print0 | xargs -0 -n1 svn info | grep URL
5
ответ дан 25 July 2018 в 22:26
  • 1
    Если вы используете -exec ... + вместо -exec ... ";", вы получаете параллельный вызов, например, с помощью xargs, без -print0 гимнастики. Вам не нужно маскировать {} в поиске, а не для текущей оболочки. – user unknown 20 March 2011 в 04:18
[F1]
0
ответ дан 25 July 2018 в 22:26
  • 1
    Почти так же, как Шарбель. Вы также можете опустить маскировку {}. – user unknown 20 March 2011 в 04:24

На самом деле я понял, что нижеследующее делает то, что я хочу в этом случае:

find . -maxdepth 1 -type d -print -exec svn info "{}" \; | grep URL

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 2 August 2018 в 03:53
  • 1
    Это должно сделать следующее: -exec sh -c & quot; ls {} | то, что & Quot; \; – João Pinto 23 February 2011 в 21:10
  • 2
    @ João Pinto: Нет, вы не должны вставлять {} в такой скрипт. Передайте это как аргумент. [F2] – geirha 24 February 2011 в 17:14
  • 3
    Вы не должны вызывать оболочку вообще. Решение Charbels намного лучше - тощее и чистое. Что вам нравится с вашей оболочкой? Шарбель просто может отказаться от бесполезной маскировки {}. – user unknown 20 March 2011 в 04:21

Вам нужна оболочка для интерпретации канала.

find . -maxdepth 1 -type d -print -exec sh -c 'LANG=C svn info "$1" | grep URL' _ {} \;

См. http://mywiki.wooledge.org/UsingFind для получения дополнительных примеров.

Хотя. Вместо этого я бы использовал for-loop для этого:

for svndir in ./*/.svn/; do dir=${svndir%/.svn/} echo "$dir" LANG=C svn info "$dir" | grep URL # or maybe just: sed '5!d;q' "$svndir/entries" done
1
ответ дан 2 August 2018 в 03:53
  • 1
    найти . -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" | grep URL 'дает мне следующую ошибку: & quot; find: отсутствующие аргументы в `-exec' & quot; – Charbel 24 February 2011 в 15:06
  • 2
    @Charbel, вам не хватает последней части, вам нужно прокрутить правую сторону, чтобы вы тоже получили часть _ {} \; :) – geirha 24 February 2011 в 17:12

Как правило, я нахожу xargs гораздо более разумным для использования, чем опция find -exec. Это особенно верно для ускорения процесса, так как для каждой строки вывода поиска не запускается отдельный «svn»:

find . -maxdepth 1 -type d | xargs svn info | grep URL

Если вы имеете дело со файлами со странными именами (пробелы, символы новой строки и т. Д. ), просто добавьте -print0 для поиска и -0 в xargs:

find . -maxdepth 1 -type d -print0 | xargs -0 svn info | grep URL

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

find . -maxdepth 1 -type d -print0 | xargs -0 -n1 svn info | grep URL
5
ответ дан 2 August 2018 в 03:53
  • 1
    Если вы используете -exec ... + вместо -exec ... ";", вы получаете параллельный вызов, например, с помощью xargs, без -print0 гимнастики. Вам не нужно маскировать {} в поиске, а не для текущей оболочки. – user unknown 20 March 2011 в 04:18
[F1]
0
ответ дан 2 August 2018 в 03:53
  • 1
    Почти так же, как Шарбель. Вы также можете опустить маскировку {}. – user unknown 20 March 2011 в 04:24
  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  
0
ответ дан 4 August 2018 в 19:56

Как правило, я нахожу xargs гораздо более разумным, чем опция find -exec. Это особенно верно для ускорения процесса, так как отдельный «svn» не запускается для каждой строки вывода поиска:

  find.  -maxdepth 1-тип d |  xargs svn info |  grep URL  

Если вы имеете дело со файлами со странными именами (пробелы, новые строки и т. д.), просто добавьте -print0 , чтобы найти и -0 в xargs:

  find.  -maxdepth 1-тип d -print0 |  xargs -0 svn info |  grep URL  

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

   найти.  -maxdepth 1-тип d -print0 |  xargs -0 -n1 svn info |  grep URL  
5
ответ дан 4 August 2018 в 19:56

Вам нужна оболочка для интерпретации трубы.

  find.  -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" |  grep URL '_ {} \;   

Подробнее см. http://mywiki.wooledge.org/UsingFind .

Хотя. Вместо этого я бы использовал for-loop для этого:

  для svndir in ./*/.svn/;  do dir = $ {svndir% /. svn /} echo "$ dir" LANG = C svn info "$ dir" |  grep URL # или, может быть, просто: sed '5! d; q' "$ svndir / entries" done  
1
ответ дан 4 August 2018 в 19:56

На самом деле я понял, что ниже делает то, что я хочу в этом случае:

  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 4 August 2018 в 19:56
  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  
0
ответ дан 6 August 2018 в 03:59

Как правило, я нахожу xargs гораздо более разумным, чем опция find -exec. Это особенно верно для ускорения процесса, так как отдельный «svn» не запускается для каждой строки вывода поиска:

  find.  -maxdepth 1-тип d |  xargs svn info |  grep URL  

Если вы имеете дело со файлами со странными именами (пробелы, новые строки и т. д.), просто добавьте -print0 , чтобы найти и -0 в xargs:

  find.  -maxdepth 1-тип d -print0 |  xargs -0 svn info |  grep URL  

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

   найти.  -maxdepth 1-тип d -print0 |  xargs -0 -n1 svn info |  grep URL  
5
ответ дан 6 August 2018 в 03:59

Вам нужна оболочка для интерпретации трубы.

  find.  -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" |  grep URL '_ {} \;   

Подробнее см. http://mywiki.wooledge.org/UsingFind .

Хотя. Вместо этого я бы использовал for-loop для этого:

  для svndir in ./*/.svn/;  do dir = $ {svndir% /. svn /} echo "$ dir" LANG = C svn info "$ dir" |  grep URL # или, может быть, просто: sed '5! d; q' "$ svndir / entries" done  
1
ответ дан 6 August 2018 в 03:59

На самом деле я понял, что ниже делает то, что я хочу в этом случае:

  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 6 August 2018 в 03:59
  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  
0
ответ дан 7 August 2018 в 21:57

Как правило, я нахожу xargs гораздо более разумным, чем опция find -exec. Это особенно верно для ускорения процесса, так как отдельный «svn» не запускается для каждой строки вывода поиска:

  find.  -maxdepth 1-тип d |  xargs svn info |  grep URL  

Если вы имеете дело со файлами со странными именами (пробелы, новые строки и т. д.), просто добавьте -print0 , чтобы найти и -0 в xargs:

  find.  -maxdepth 1-тип d -print0 |  xargs -0 svn info |  grep URL  

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

   найти.  -maxdepth 1-тип d -print0 |  xargs -0 -n1 svn info |  grep URL  
5
ответ дан 7 August 2018 в 21:57

На самом деле я понял, что ниже делает то, что я хочу в этом случае:

  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 7 August 2018 в 21:57

Вам нужна оболочка для интерпретации трубы.

  find.  -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" |  grep URL '_ {} \;   

Подробнее см. http://mywiki.wooledge.org/UsingFind .

Хотя. Вместо этого я бы использовал for-loop для этого:

  для svndir in ./*/.svn/;  do dir = $ {svndir% /. svn /} echo "$ dir" LANG = C svn info "$ dir" |  grep URL # или, может быть, просто: sed '5! d; q' "$ svndir / entries" done  
1
ответ дан 7 August 2018 в 21:57
  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  
0
ответ дан 10 August 2018 в 10:11

Вам нужна оболочка для интерпретации трубы.

  find.  -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" |  grep URL '_ {} \;   

Подробнее см. http://mywiki.wooledge.org/UsingFind .

Хотя. Вместо этого я бы использовал for-loop для этого:

  для svndir in ./*/.svn/;  do dir = $ {svndir% /. svn /} echo "$ dir" LANG = C svn info "$ dir" |  grep URL # или, может быть, просто: sed '5! d; q' "$ svndir / entries" done  
1
ответ дан 10 August 2018 в 10:11

Как правило, я нахожу xargs гораздо более разумным, чем опция find -exec. Это особенно верно для ускорения процесса, так как отдельный «svn» не запускается для каждой строки вывода поиска:

  find.  -maxdepth 1-тип d |  xargs svn info |  grep URL  

Если вы имеете дело со файлами со странными именами (пробелы, новые строки и т. д.), просто добавьте -print0 , чтобы найти и -0 в xargs:

  find.  -maxdepth 1-тип d -print0 |  xargs -0 svn info |  grep URL  

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

   найти.  -maxdepth 1-тип d -print0 |  xargs -0 -n1 svn info |  grep URL  
5
ответ дан 10 August 2018 в 10:11

На самом деле я понял, что ниже делает то, что я хочу в этом случае:

  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 10 August 2018 в 10:11
  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  
0
ответ дан 13 August 2018 в 16:33
  • 1
    Почти так же, как Шарбель. Вы также можете опустить маскировку {} . – user unknown 20 March 2011 в 04:24

Как правило, я нахожу xargs гораздо более разумным, чем опция find -exec. Это особенно верно для ускорения процесса, так как отдельный «svn» не запускается для каждой строки вывода поиска:

  find.  -maxdepth 1-тип d |  xargs svn info |  grep URL  

Если вы имеете дело со файлами со странными именами (пробелы, новые строки и т. д.), просто добавьте -print0 , чтобы найти и -0 в xargs:

  find.  -maxdepth 1-тип d -print0 |  xargs -0 svn info |  grep URL  

Если вы имеете дело с программой, которая может принимать только один аргумент, вы можете использовать -n1 с xargs:

   найти.  -maxdepth 1-тип d -print0 |  xargs -0 -n1 svn info |  grep URL  
5
ответ дан 13 August 2018 в 16:33
  • 1
    Если вы используете -exec ... + вместо -exec ... & quot ;; ", вы получаете параллельный вызов, например, с xargs, без -print0-гимнастики. Вам не нужно маскировать {} в поиске, а не для текущей оболочки. – user unknown 20 March 2011 в 04:18

Вам нужна оболочка для интерпретации трубы.

  find.  -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" |  grep URL '_ {} \;   

Подробнее см. http://mywiki.wooledge.org/UsingFind .

Хотя. Вместо этого я бы использовал for-loop для этого:

  для svndir in ./*/.svn/;  do dir = $ {svndir% /. svn /} echo "$ dir" LANG = C svn info "$ dir" |  grep URL # или, может быть, просто: sed '5! d; q' "$ svndir / entries" done  
1
ответ дан 13 August 2018 в 16:33
  • 1
    найти . -maxdepth 1-type d -print -exec sh -c 'LANG = C svn info "$ 1" | grep URL 'дает мне следующую ошибку: & quot; find: отсутствующие аргументы в `-exec' & quot; – Charbel 24 February 2011 в 15:06
  • 2
    @Charbel, вы пропустили последнюю часть, вам нужно прокрутить вправо, так что вы также получите часть _ {} \; :) – geirha 24 February 2011 в 17:12

На самом деле я понял, что ниже делает то, что я хочу в этом случае:

  find.  -maxdepth 1-type d -print -exec svn info "{}" \;  |  grep URL  

, но мне все же хотелось бы знать, как я могу выводить вывод внутри exec find

1
ответ дан 13 August 2018 в 16:33
  • 1
    Это должно сделать следующее: -exec sh -c & quot; ls {} | то, что & Quot; \; – João Pinto 23 February 2011 в 21:10
  • 2
    @ João Pinto: Нет, вы не должны вставлять {} в такой скрипт. Передайте это как аргумент. -exec sh -c 'ls' $ @ & quot; | что-то '_ {} \; – geirha 24 February 2011 в 17:14
  • 3
    Вы не должны вызывать оболочку вообще. Решение Charbels намного лучше - тощее и чистое. Что вам нравится с вашей оболочкой? Charbel просто может отказаться от бесполезной маскировки {} . – user unknown 20 March 2011 в 04:21

Другие вопросы по тегам:

Похожие вопросы: