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


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

Автор Тема: Обход папок, с внутренним файлом  (Прочитано 750 раз)

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

Оффлайн KingS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Обход папок, с внутренним файлом
« : 24 Декабря 2018, 14:58:42 »
Привет Всем! Есть много папок, в конце каждой есть файл с названием, которое я знаю. Скрипт по обработке файла я написал. Как сделать обход папок и к каждому найденному файлу, нужного названия применять скрипт ?
-> A
-->B
--->err.txt
-->C
--->err.txt
--->D
----->err.txt


Пользователь добавил сообщение 24 Декабря 2018, 15:03:17:
Я нашел вот такой скрипт
[sup]
#/bin/bash

start() {
  local fullname="$1"
  local filename=`basename "$1"`
  local fileext="${filename##*.}"
  local ext2lower=`echo "$ext" | tr A-Z a-z`
  echo $fullname
}

scan() {
  local x;
  for e in "$1"/*; do
    x=${e##*/}
    if [ -d "$e" -a ! -L "$e" ]
    then
      scan "$e"
    else
      start "$e"
    fi
  done
}

[ $# -eq 0 ] && dir=`pwd` || dir=$@

scan "$dir"[/sup]

он выводит только пути всех внутренних папок.  Куда вставить строчку ./work.sh со скриптом обработки для файлов err.txt ?

Цитировать
Правила форума
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тегов [spoiler]...[/spoiler] или [code]...[/code], либо прикреплять к сообщению в виде отдельного файла. Длинные гиперссылки следует оформлять при помощи тега [url=]...[/url]

  --Aleksandru
« Последнее редактирование: 24 Декабря 2018, 16:32:08 от Aleksandru »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Обход папок, с внутренним файлом
« Ответ #1 : 24 Декабря 2018, 15:27:41 »
find -name err.txt -exec ./work.sh {} \;
find -name err.txt -print0 | xargs -0 ./work.sh

« Последнее редактирование: 24 Декабря 2018, 15:36:25 от 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

Оффлайн KingS

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Обход папок, с внутренним файлом
« Ответ #2 : 24 Декабря 2018, 15:49:40 »
Код: [Выделить]
find -name err.txt -exec ./work.sh {} \;

Код: [Выделить]
find -name err.txt -print0 | xargs -0 ./work.sh


даже фаил который мне нужен не ищется...

Я придумал еще так сделать, может это легче: у меня есть Фаил с адресами где хранятся мой файлы, и я хочу подавать на скрипт в виде переменной адрес файла над которым надо поработать. Как взять адрес из тхт Фаина и передать скрипту?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Обход папок, с внутренним файлом
« Ответ #3 : 24 Декабря 2018, 19:15:05 »
find -name err.txt
find "$dir" -name err.txt
так ищет?
И скрипт у Вас странный... Есть команда rename которая легко и просто сделает то что Вы хотите...
« Последнее редактирование: 24 Декабря 2018, 19:19:01 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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