Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Скрипт bash неверно выводит имена файлов  (Прочитано 318 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Aleks.Sinjavin

  • Автор темы
  • Любитель
  • *
  • Сообщений: 86
    • Просмотр профиля
#!/bin/bash

f=`find -name \*.doc`
for file in $f
do
  printf "$file"
done

Bash реагирует на пробелы и выводит каждое слово с новой строки. Нужно с новой строки выводить каждый файл. Как сделать?

Если нужно работать с найденными файлами пишет файл не найден.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6733
  • 20% Cooler
    • Просмотр профиля
find -name '*.doc' -exec printf '%s\n' {} \;


Пользователь добавил сообщение 20 Мая 2021, 03:02:58:
for file in *.doc; do
  echo "$file"
done
« Последнее редактирование: 20 Мая 2021, 03:02:58 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Aleks.Sinjavin

  • Автор темы
  • Любитель
  • *
  • Сообщений: 86
    • Просмотр профиля
for file in *.doc; do
  echo "$file"
done
Код выше не заходит в каталоги и подкаталоги.

В командной строке
find -name '*.doc' -exec printf '%s\n' {} \;нужно выполнить и вторую команду вместе с первой: abiword зависает на неизвестном мне файле
abiword --to=txt --to-name="$file".txt "$file"
« Последнее редактирование: 20 Мая 2021, 15:47:45 от Aleks.Sinjavin »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6733
  • 20% Cooler
    • Просмотр профиля
find -name '*.doc' | while read file; do
    printf "$file"
    abiword --to=txt --to-name="$file".txt "$file"
done
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

 

Страница сгенерирована за 0.039 секунд. Запросов: 25.