Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
4 / 4 / 1
Регистрация: 17.12.2017
Сообщений: 120

Найти файлы содержащие определенные строки, удалить дубли строк

10.03.2019, 19:18. Показов 1966. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать функцию, которая:
• в заданном первым параметром каталоге находит все простые файлы, в которых содержатся заданные вторым и третьим параметрами символьные строки;
• в найденных файлах удаляет все повторяющиеся строки;
• выводит на экран имена всех полученных файлов.
Тема избитая,есть аналог , но их код не работает, кто может знает,что там исправить?
Bash
1
2
3
4
5
6
7
#!/bin/bash
while read fname; do
    echo $fname
    awk 'FNR==NR{lines[$0]++;next}lines[$0]<3' "$fname" "$fname" >tmp.file
    mv tmp.file "$fname"
done < <(grep -Ilr "$2\|$3" "$1")
rm tmp.file
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2019, 19:18
Ответы с готовыми решениями:

Найти файлы содержащие определенные строки, удалить дубли строк
Добрый день, господа Линуксоиды:) прошу помощи с написанием shell скрипта ______________________________________ Написать...

Найти определенные строки (содержащие определенные слова) и сохранить найденные строки из массива в один файл
Имеется массив строк. Подскажите пожалуйста, как можно найти определенные строки (содержащие определенные слова) и сохранить найденные...

Удалить строки, содержащие определенные ячейки
Необходимо удалить строки содержащие определенные ячейки, допустим ячейку со словом &quot;ололо&quot; Вот код(ищу с 6ой до конца) ...

3
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
10.03.2019, 21:52
По моему в вашем задании ничего не сказано про рекурсивный поиск в каталогах, поэтому привожу
функцию поиска в одном - заданном каталоге
Bash
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
my_func () {
        cd "$1"
        while read d; do
#               awk '!t[$0]++' "$d" > "$d.tmp"
#               mv "$d.tmp" "$d"
                echo "$d"
        done < <(grep -sIl "$2\|$3" ./*)
}
 
my_func "/path/to/dir" "string1" "string2"
Не проверяла так что протестируйте в специально созданном каталоге ))
После того как вы удостоверитесь что программа находит нужные файлы, раскоментируйте
все строчки

Добавлено через 1 минуту
Перекопируйте, я подправила код
1
4 / 4 / 1
Регистрация: 17.12.2017
Сообщений: 120
10.03.2019, 22:10  [ТС]
Запускаю /bin/bash prog2 ( этот код) . В домашнем каталог создал /path/to/dir , но в консоле пишет строка 4 cd /path/to/dir - нет такого каталога или файла. Где-то я туплю
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
10.03.2019, 22:53
Лучший ответ Сообщение было отмечено DieSeele как решение

Решение

path/to/dir/
без предваряющего слеша, раз в домашнем каталоге
Или абсолютный путь
~/path/to/dir

Добавлено через 6 минут
Если указывать тильду, надо убрать двойные кавычки с первого параметра функции
my_func ~/path/to/dir "string1" "string2"
или
"/home/$USER/path/to/dir"
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.03.2019, 22:53
Помогаю со студенческими работами здесь

Удалить строки из файла, содержащие определенные символы
Здравствуйте. Помогите пожалуйста реализовать. Есть файл, допустим в нём около 1 млн. строк. Мне нужно удалить строки? содержащие...

Удалить в файле строки, содержащие определенные слова
Добрый день! Помогите, нужно из огромного тхт файлика удалить все строки содержащие определенные слова. Например вася,петя,маша,даша,паша...

Действия с текстовым файлом, удалить строки, содержащие определенные символы
У меня есть текстовый файл, в котором содержатся адреса, нужно очистить файл от адресов, в которых есть слова pfr, gov и все, что останется...

Работа с текстовым файлом, удалить строки, содержащие определенные символы
Дан текстовый файл со списком доменов, нужно удалить все домены содержащие в имени, например, слово &quot;mos&quot; и все записать в новый...

Найти файлы в определенном каталоге, содержащие определенные символы
Здравствуйте, помогите, пожалуйста разобраться. Делаю лабораторную работу по Операционным системам, впервые пришлось использовать ОС...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru