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


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

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

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 »

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2978
  • SimbaLeo
    • Просмотр профиля
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 »
ASUS M5A78L-M LX3 :: AMD FX-4330 :: 16 GB RAM :: AMD Radeon R7 260X :: ZSH
SAMSUNG N150 :: Intel Atom N450 :: 2 GB RAM :: Intel GMA 3150 :: ZSH

Оффлайн 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

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

 

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