Поиск и замена в файлах

Я нашел следующий удивительный маленький скрипт в ссылке

$ find / home / bruno / old-friends -type f -exec sed -i 's / ugly / beautiful / g' {} \;

Но я действительно не понимаю финальный бит

$ find / home / bruno / old-friends -type f -exec sed -i 's / ougly / beautiful / g '{} \;

{} \;

Не могли бы вы объяснить, пожалуйста?

1
задан 16 July 2012 в 20:35

7 ответов

Я использовал страницу about.com Linux в течение некоторого времени, которая охватывает

find - поиск файлов в иерархии каталогов

как ссылка на некоторое время, и она охватывает часть команды, о которой вы спрашиваете.

find . -type f -exec file '{}' \;

Запускает `файл 'для каждого файла в или ниже текущего каталога. Обратите внимание, что фигурные скобки заключены в метки одиночной кавычки, чтобы защитить их от интерпретации как пунктуацию сценария оболочки. Точка с запятой аналогично защищена с помощью обратного слэша, хотя ';' мог бы быть использован и в этом случае.

Итак, я думаю, что ваша команда должна иметь точки с запятой вокруг ваших фигурных скобок, чтобы быть в безопасности.

Ссылки:

Статья объясняя команду find

1
ответ дан 25 May 2018 в 08:36

С exec (а не xargs) необходимо включить {}, поскольку он заменяется именем файла, на который нацелена команда find; это местозаполнитель, который обычно цитируется так, что если в каких-либо файлах-мишенях есть пробелы в них, команда будет успешно выполняться во всех файлах. [F3] должен быть включен, поскольку он завершает команду, точно так же, как при разделении нескольких команд в командной строке. В этом случае он должен быть escaped, так что команда find получает его из оболочки, нерасширенной (как литерал).

Еще одна отличная и действительно важная статья - это то, что в эта полезная статья. , которая объясняет чрезвычайно ну, команда find, exec и важность цитирования различных элементов в вашей команде или скрипте. Я нашел эту статью и сайт в целом очень полезными для изучения сценариев bash и bash.

0
ответ дан 25 May 2018 в 08:36

С exec (а не xargs) необходимо включить {}, поскольку он заменяется именем файла, на который нацелена команда find; это местозаполнитель, который обычно цитируется так, что если в каких-либо файлах-мишенях есть пробелы в них, команда будет успешно выполняться во всех файлах. [F3] должен быть включен, поскольку он завершает команду, точно так же, как при разделении нескольких команд в командной строке. В этом случае он должен быть escaped, так что команда find получает его из оболочки, нерасширенной (как литерал).

Еще одна отличная и действительно важная статья - это то, что в эта полезная статья. , которая объясняет чрезвычайно ну, команда find, exec и важность цитирования различных элементов в вашей команде или скрипте. Я нашел эту статью и сайт в целом очень полезными для изучения сценариев bash и bash.

0
ответ дан 25 May 2018 в 08:36

С exec (а не xargs) необходимо включить {}, поскольку он заменяется именем файла, на который нацелена команда find; это местозаполнитель, который обычно цитируется так, что если в каких-либо файлах-мишенях есть пробелы в них, команда будет успешно выполняться во всех файлах. [F3] должен быть включен, поскольку он завершает команду, точно так же, как при разделении нескольких команд в командной строке. В этом случае он должен быть escaped, так что команда find получает его из оболочки, нерасширенной (как литерал).

Еще одна отличная и действительно важная статья - это то, что в эта полезная статья. , которая объясняет чрезвычайно ну, команда find, exec и важность цитирования различных элементов в вашей команде или скрипте. Я нашел эту статью и сайт в целом очень полезными для изучения сценариев bash и bash.

0
ответ дан 25 May 2018 в 08:36

С exec (а не xargs) необходимо включить {}, поскольку он заменяется именем файла, на который нацелена команда find; это местозаполнитель, который обычно цитируется так, что если в каких-либо файлах-мишенях есть пробелы в них, команда будет успешно выполняться во всех файлах. [F3] должен быть включен, поскольку он завершает команду, точно так же, как при разделении нескольких команд в командной строке. В этом случае он должен быть escaped, так что команда find получает его из оболочки, нерасширенной (как литерал).

Еще одна отличная и действительно важная статья - это то, что в эта полезная статья. , которая объясняет чрезвычайно ну, команда find, exec и важность цитирования различных элементов в вашей команде или скрипте. Я нашел эту статью и сайт в целом очень полезными для изучения сценариев bash и bash.

0
ответ дан 25 May 2018 в 08:36

С exec (а не xargs) необходимо включить {}, поскольку он заменяется именем файла, на который нацелена команда find; это местозаполнитель, который обычно цитируется так, что если в каких-либо файлах-мишенях есть пробелы в них, команда будет успешно выполняться во всех файлах. [F3] должен быть включен, поскольку он завершает команду, точно так же, как при разделении нескольких команд в командной строке. В этом случае он должен быть escaped, так что команда find получает его из оболочки, нерасширенной (как литерал).

Еще одна отличная и действительно важная статья - это то, что в эта полезная статья. , которая объясняет чрезвычайно ну, команда find, exec и важность цитирования различных элементов в вашей команде или скрипте. Я нашел эту статью и сайт в целом очень полезными для изучения сценариев bash и bash.

0
ответ дан 25 May 2018 в 08:36

С exec (а не xargs) необходимо включить {}, поскольку он заменяется именем файла, на который нацелена команда find; это местозаполнитель, который обычно цитируется так, что если в каких-либо файлах-мишенях есть пробелы в них, команда будет успешно выполняться во всех файлах. [F3] должен быть включен, поскольку он завершает команду, точно так же, как при разделении нескольких команд в командной строке. В этом случае он должен быть escaped, так что команда find получает его из оболочки, нерасширенной (как литерал).

Еще одна отличная и действительно важная статья - это то, что в эта полезная статья. , которая объясняет чрезвычайно ну, команда find, exec и важность цитирования различных элементов в вашей команде или скрипте. Я нашел эту статью и сайт в целом очень полезными для изучения сценариев bash и bash.

0
ответ дан 25 May 2018 в 08:36

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

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