The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Цикл по строкам файла"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Цикл по строкам файла"  +/
Сообщение от Dart_Vitalus (ok) on 27-Май-11, 00:10 
Задачка: требуется организовать цикл по строкам файла и в переменную вытаскивать значение после первого пробела каждой строки.
Например есть файл:
123 адама
345 парне

в итоге должно получиться:
адама
парне

Для чего спрашиваю: хочу из файла md5 вытащить имена файлов и сравнить с имеющимися в папке файлами на наличие "пропавших" (в файле есть а в каталоге нет). Файл md5 создан посредством команды md5sum, как вы уже догадались, и из этого же каталога.

Нужно срочно, буду крайне благодарен!:)

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Цикл по строкам файла"  +/
Сообщение от erera22 (ok) on 27-Май-11, 02:50 
>[оверквотинг удален]
> 123 адама
> 345 парне
> в итоге должно получиться:
> адама
> парне
> Для чего спрашиваю: хочу из файла md5 вытащить имена файлов и сравнить
> с имеющимися в папке файлами на наличие "пропавших" (в файле есть
> а в каталоге нет). Файл md5 создан посредством команды md5sum, как
> вы уже догадались, и из этого же каталога.
> Нужно срочно, буду крайне благодарен!:)

while read -r str ; do fname=$(echo "${str}"|awk '{print $2}') ; if [ ! -e /path/"${fname}" ]; then echo "${fname}" ; fi ; done < FILE

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Цикл по строкам файла"  +/
Сообщение от Aquarius (ok) on 27-Май-11, 03:39 
>[оверквотинг удален]
>> адама
>> парне
>> Для чего спрашиваю: хочу из файла md5 вытащить имена файлов и сравнить
>> с имеющимися в папке файлами на наличие "пропавших" (в файле есть
>> а в каталоге нет). Файл md5 создан посредством команды md5sum, как
>> вы уже догадались, и из этого же каталога.
>> Нужно срочно, буду крайне благодарен!:)
> while read -r str ; do fname=$(echo "${str}"|awk '{print $2}') ; if
> [ ! -e /path/"${fname}" ]; then echo "${fname}" ; fi ;
> done < FILE

awk '{print $2}'
не годится, если имена файлов содержат пробелы

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Цикл по строкам файла"  +/
Сообщение от Xaionaro (ok) on 27-Май-11, 08:36 
>[оверквотинг удален]
>>> Для чего спрашиваю: хочу из файла md5 вытащить имена файлов и сравнить
>>> с имеющимися в папке файлами на наличие "пропавших" (в файле есть
>>> а в каталоге нет). Файл md5 создан посредством команды md5sum, как
>>> вы уже догадались, и из этого же каталога.
>>> Нужно срочно, буду крайне благодарен!:)
>> while read -r str ; do fname=$(echo "${str}"|awk '{print $2}') ; if
>> [ ! -e /path/"${fname}" ]; then echo "${fname}" ; fi ;
>> done < FILE
> awk '{print $2}'
> не годится, если имена файлов содержат пробелы

sed -e 's#^\S*\s*##g'

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Цикл по строкам файла"  +/
Сообщение от jedi email on 27-Май-11, 13:07 
> awk '{print $2}'
> не годится, если имена файлов содержат пробелы

awk '{$1="";print}' file
задание на дом:разобраться с первым пробелом

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Цикл по строкам файла"  +/
Сообщение от cryo (ok) on 27-Май-11, 12:53 
Как-то так:

#!/usr/bin/bash

while read line    
do    
    FILE=`echo $line | cut -d ' ' -f 2-`
    if [ -f "$FILE" ]; then
        echo \"$FILE\" is EXIST
    else
        echo \"$FILE\" is NOT EXIST
    fi
done < $1

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру