Задачка: требуется организовать цикл по строкам файла и в переменную вытаскивать значение после первого пробела каждой строки.
Например есть файл:
123 адама
345 парнев итоге должно получиться:
адама
парнеДля чего спрашиваю: хочу из файла md5 вытащить имена файлов и сравнить с имеющимися в папке файлами на наличие "пропавших" (в файле есть а в каталоге нет). Файл md5 создан посредством команды md5sum, как вы уже догадались, и из этого же каталога.
Нужно срочно, буду крайне благодарен!:)
>[оверквотинг удален]
> 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
>[оверквотинг удален]
>> адама
>> парне
>> Для чего спрашиваю: хочу из файла md5 вытащить имена файлов и сравнить
>> с имеющимися в папке файлами на наличие "пропавших" (в файле есть
>> а в каталоге нет). Файл md5 создан посредством команды md5sum, как
>> вы уже догадались, и из этого же каталога.
>> Нужно срочно, буду крайне благодарен!:)
> while read -r str ; do fname=$(echo "${str}"|awk '{print $2}') ; if
> [ ! -e /path/"${fname}" ]; then echo "${fname}" ; fi ;
> done < FILEawk '{print $2}'
не годится, если имена файлов содержат пробелы
>[оверквотинг удален]
>>> Для чего спрашиваю: хочу из файла 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'
> awk '{print $2}'
> не годится, если имена файлов содержат пробелыawk '{$1="";print}' file
задание на дом:разобраться с первым пробелом
Как-то так:#!/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