URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9148
[ Назад ]

Исходное сообщение
"Цикл по строкам файла"

Отправлено Dart_Vitalus , 27-Май-11 00:10 
Задачка: требуется организовать цикл по строкам файла и в переменную вытаскивать значение после первого пробела каждой строки.
Например есть файл:
123 адама
345 парне

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

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

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


Содержание

Сообщения в этом обсуждении
"Цикл по строкам файла"
Отправлено erera22 , 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


"Цикл по строкам файла"
Отправлено Aquarius , 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}'
не годится, если имена файлов содержат пробелы


"Цикл по строкам файла"
Отправлено Xaionaro , 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'


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

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


"Цикл по строкам файла"
Отправлено cryo , 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