Сценарий Linux для анализа строки текста и сравнения двух строк в строке [закрыто] ⇐ Linux
-
Anonymous
Сценарий Linux для анализа строки текста и сравнения двух строк в строке [закрыто]
Я написал несколько сценариев Linux для переименования файлов и папок, содержащих нестандартные символы ascii, для совместимости с компьютерами Mac, NAS-серверами и Windows. Мои сценарии работают путем перемещения (mv) старой сомнительной папки/имени файла в новую чистую папку/имя файла.
Похоже, что сценарий сработал очень хорошо, но я хочу проверить результаты на случай, если возникнет какая-то аномалия, которую я не ожидал. В одном файле результатов у меня 251 068 строк, поэтому прокрутка файла займет значительное время.
В частности, я хотел бы проверить, чтобы имена файлов mv не были идентичными.
Глядя на два файла, обработанных ниже, первый из них содержит сомнительные символы, поэтому я удаляю их и пытаюсь переименовать, переходя к новому имени без сомнительных символов, но файл уже существует, поэтому мой код зацикливается на добавлении числовое значение в конце нового имени файла до тех пор, пока это имя файла не перестанет существовать, и тогда mv сможет продолжить работу. То же самое и со вторым файлом, за исключением того, что на этот раз нового имени файла не существовало, поэтому это был прямой mv.
Мне нужно проанализировать эхо команды mv (которое содержит ->) и сравнить левую и правую строки (старые и новые имена файлов, заключенные в одинарные кавычки), чтобы увидеть, что они различны. Если это не так, мне нужно выделить эту строку, чтобы я мог ее изучить.
Я понимаю, что AWK будет лучшим способом сделать это, но я ни в коем случае не являюсь гуру сценариев Linux или Bash, и мне потребовался месяц, чтобы написать серию имеющихся у меня сценариев для переименования файлов и папок. . К сожалению, у меня нет еще месяца на изучение AWK, поэтому я обращаюсь к сообществу, чтобы узнать, может ли мне помочь гений AWK.
Если я не смогу получить что-то в AWK, мне придется написать для этого какой-нибудь vbscript, но я бы предпочел придерживаться Linux, если смогу, потому что я хочу понять и AWK, и GREP более подробно. Программирование — моя первая любовь, и меня поразила мощь команд и сценариев Linux; но мне нужно управлять реалиями ИТ-отдела, поэтому мне нужен ярлык, пожалуйста. Заранее благодарим всех, кто готов помочь.
Обработка: [Новое счастье]
Имя папки /share/PK/Raspberry Blossom/RB SS2024/Supplied/New Happiness существует
'/share/PK/Цветок малины/RB SS2024/В комплекте/Новое счастье' -> '/share/PK/Цветок малины/RB SS2024/В комплекте/Новое счастье1'
Обработка: [2.Новое счастье]
'/share/PK/Малиновый цвет/RB SS2024/В комплекте/2.Новое счастье' -> '/share/PK/Малиновый цвет/RB SS2024/В комплекте/2.Новое счастье'
Я просмотрел множество публикаций об AWK, но эта команда не поддается быстрому изучению, поэтому я прибегнул к прокрутке файла, что заняло у меня вечность. Я могу извлечь все эхо-сигналы mv в другой файл с помощью grep, но тогда мне придется идти дальше. Но время не на моей стороне, это должно было начаться в августовские выходные.
Я написал несколько сценариев Linux для переименования файлов и папок, содержащих нестандартные символы ascii, для совместимости с компьютерами Mac, NAS-серверами и Windows. Мои сценарии работают путем перемещения (mv) старой сомнительной папки/имени файла в новую чистую папку/имя файла.
Похоже, что сценарий сработал очень хорошо, но я хочу проверить результаты на случай, если возникнет какая-то аномалия, которую я не ожидал. В одном файле результатов у меня 251 068 строк, поэтому прокрутка файла займет значительное время.
В частности, я хотел бы проверить, чтобы имена файлов mv не были идентичными.
Глядя на два файла, обработанных ниже, первый из них содержит сомнительные символы, поэтому я удаляю их и пытаюсь переименовать, переходя к новому имени без сомнительных символов, но файл уже существует, поэтому мой код зацикливается на добавлении числовое значение в конце нового имени файла до тех пор, пока это имя файла не перестанет существовать, и тогда mv сможет продолжить работу. То же самое и со вторым файлом, за исключением того, что на этот раз нового имени файла не существовало, поэтому это был прямой mv.
Мне нужно проанализировать эхо команды mv (которое содержит ->) и сравнить левую и правую строки (старые и новые имена файлов, заключенные в одинарные кавычки), чтобы увидеть, что они различны. Если это не так, мне нужно выделить эту строку, чтобы я мог ее изучить.
Я понимаю, что AWK будет лучшим способом сделать это, но я ни в коем случае не являюсь гуру сценариев Linux или Bash, и мне потребовался месяц, чтобы написать серию имеющихся у меня сценариев для переименования файлов и папок. . К сожалению, у меня нет еще месяца на изучение AWK, поэтому я обращаюсь к сообществу, чтобы узнать, может ли мне помочь гений AWK.
Если я не смогу получить что-то в AWK, мне придется написать для этого какой-нибудь vbscript, но я бы предпочел придерживаться Linux, если смогу, потому что я хочу понять и AWK, и GREP более подробно. Программирование — моя первая любовь, и меня поразила мощь команд и сценариев Linux; но мне нужно управлять реалиями ИТ-отдела, поэтому мне нужен ярлык, пожалуйста. Заранее благодарим всех, кто готов помочь.
Обработка: [Новое счастье]
Имя папки /share/PK/Raspberry Blossom/RB SS2024/Supplied/New Happiness существует
'/share/PK/Цветок малины/RB SS2024/В комплекте/Новое счастье' -> '/share/PK/Цветок малины/RB SS2024/В комплекте/Новое счастье1'
Обработка: [2.Новое счастье]
'/share/PK/Малиновый цвет/RB SS2024/В комплекте/2.Новое счастье' -> '/share/PK/Малиновый цвет/RB SS2024/В комплекте/2.Новое счастье'
Я просмотрел множество публикаций об AWK, но эта команда не поддается быстрому изучению, поэтому я прибегнул к прокрутке файла, что заняло у меня вечность. Я могу извлечь все эхо-сигналы mv в другой файл с помощью grep, но тогда мне придется идти дальше. Но время не на моей стороне, это должно было начаться в августовские выходные.
Мобильная версия