Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Скопировать текстовые файлы file1 file2 file3 file4 в домашней папке в директорию dir2 с использованием шаблона имен

Как скопировать текстовые файлы file1 file2 file3 file4 в домашней папке в директорию dir2 с использованием шаблона имен? Пробовал
Bash
1
сp *.txt / dir2
пишет ошибку: не удалось выполнить stat для '*.txt'. Нет такого файла или каталога.
Ответ: Теперь получилось,спасибо!
Вопрос: Открытие программами файлов из списка, в текстовом файле

Здравствуйте ув. форумчане. Помогите допилить, ну очееень надо. Ос debian wheezy. Посредствам баша хочу организавать автоматическое проигрывание медиа контента, который рассположен в отдельной папке для закачки. Все пути к файлам проигрывания лежат в текстовом файле plist.conf. Скриптом баш хочу организовывать воспроизведение видео и картинок. Помогите с синтаксисом.
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
# Split file by lines, EOL is Unix line break.
IFS=$'\n'
# Text file split line by line
PLAYLIST_FILE="plist.conf"
function mp4_handle
{
omxplayer -p -o hdmi "$line"
}
 
function jpg_handle
{
file=$(echo "$line" | cut -d ' ' -f1)
time=$(echo "$line" | cut -d ' ' -f2 | grep -Eo "[0-9]*")
if [ ! -r $file ]; then echo "WARN: Cannot read image $file";
return; fi;
echo "got jpg: \"$file\", time = \"$time\""
# run in a background, get pid, sleep, kill
fim "$file" &
pid=$!
sleep $time
kill $pid
}
# MAIN PROGRAM
if [[ ! -r "$PLAYLIST_FILE" ]];
then echo "ERROR: Cannot read playlist file.";
exit 1;
fi;
if [[ $(grep -c "mp4\|jpg" "$PLAYLIST_FILE") == 0 ]];
then echo "ERROR: No files to play in playlist.";
exit 1;
fi;
while (:);do
for line in $(cat "$PLAYLIST_FILE"); do
case "$line" in
*.jpg) jpg_handle ;;
*.mp4) mp4_handle ;;
esac
done;
sleep 1;
done;
Ответ:
Код Bash
1
2
3
4
5
while (:) ; do
    for line in $(cat "$path") ; do
    ...
    done
done
Стандартная операция:
Код Bash
1
2
3
while read line ; do
    ...
done < "$path"
Не теряйте кавычки
Код Bash
1
case "$line" in
Дальше
Код Bash
1
2
3
4
5
*.jpg*)
fim -w "${line%;*}" &
sleep "${line#*;}"
killall fim
;;
Вопрос: Массовая проверка IP из текстового файла

Здравствуйте!
Требуется помощь новичку.
Есть +1000 айпишников в текстовом файле, каждый с новой строки. Необходимо проверить все по очереди в whois, результаты проверки также сохранить в текстовый файл. Возможно это сделать при помощи bash-скрипта?
Направьте, как лучше это осуществить.
Ответ: Значит попробуйте через цикл:
Код Bash
1
2
3
4
while read -r address
do
    whois "$address"
done < ip_file.txt > result.txt
Вопрос: Поиск одинаковых по их содержанию файлов в двух каталогах

Ребят помогите реализовать. Я новичок в линуксе, а задачу надо сдать уже в понедельник. Буду очень благодарен.

Написать командный файл, осуществляющий поиск одинаковых по их содержанию файлов в двух каталогах, например, Dir1 и Dir2. Пользователь задает имена Dir1 и Dir2 в качестве первого и второго аргумента командной строки. В результате работы файлы, имеющиеся в Dir1, сравниваются с файлами в Dir2 по их содержанию. На экран выводятся количество просмотренных файлов и результаты сравнения. Реализовать пункт меню, который позволит пользователю удалять файлы с одинаковым содержанием.
Ответ: дифф напишет, какие файлы "взаимно отсутствуют", а про бинарники (в число которых попадают например архивы, картинки, фильмы и т.п.) с одинаковым именем и расположением напишет, что бинарные файлы аааа и бббб различаются. различие в виде именнно текста будет показано лишь для файлов имеющих "текстовую" структуру (исходники, скрипты, текстовые файлы и т.п.)...
проще показать
Код
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/config/easyhotspot.php /usr/src/easyhotspot_ci3/easyhotspot/application/config/easyhotspot.php
23c23
< $config['demo'] = FALSE;
---
> $config['demo'] = TRUE;
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/controllers/admin/Postplan.php /usr/src/easyhotspot_ci3/easyhotspot/application/controllers/admin/Postplan.php
970c970,971
< 			$answer['new']='TRUE';
---
> 			$answer['new']='true';

diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/language/english/messages_lang.php /usr/src/easyhotspot_ci3/easyhotspot/application/language/english/messages_lang.php
833c833
< $lang['USER_DELETE_BILLINGPLAN']='User  removed tariff %s';
---
> $lang['USER_DELETE_BILLINGPLAN']='User removed tariff %s';
836a837
> $lang['USER_DELETED_MACBAN']='User removed from ban-list mac-address %s';
diff -r /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/application/language/ukrainian/messages_lang.php /usr/src/easyhotspot_ci3/easyhotspot/application/language/ukrainian/messages_lang.php
854a855
> $lang['USER_DELETED_MACBAN']='Користувач видалив з переліку забанених mac-адресу %s';
 
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: 15255.jpg
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: cat3.jpg
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: Chet_Faker_-_No_Diggity.mp4
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: Facebook_video_986994354718965-986994354718965.mp4
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: Hotspor_var1.png
Только в /home/backup_copy/dmitrykhn_site/91.204.72.65/html/easyhotspot_ci3/media: YDXJ0211.mp4
Вопрос: Создать домашнюю папку для ранее созданного пользователя

Здравствуйте! Создал группу и пользователя для этой группы, теперь нужно сделать для них рабочие папки, что-то не понимаю , как их для них сделать...
Ответ:
Bash
1
usermod --help
Код
Использование: usermod [параметры] ПОЛЬЗОВАТЕЛЬ

Параметры:
  -c, --comment КОММЕНТАРИЙ     новое значение поля GECOS
  -d, --home ДОМ_КАТ            новый домашний каталог учётной записи
Вопрос: Обработать информацию из файлов query[1-5] с помощью awk (найти штат с наибольшим заказом)

1) Создать текстовый файл с текстом (5-10 строк). Результат сохранить в новом файле, исходный файл должен остаться без изменения.
В созданном текстовом файле удалить вторую строку, начинающуюся с буквы 'Н'.
2) Из информации, содержащейся в файлах query[1-5], определить штат, в котором был сделан заказ на самую большую общую сумму.
3) Определить количество пользователей из группы.
 Комментарий модератора Marinero
Сообщение от п.5.18 Правил форума
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Ответ: 1) Создать текстовый файл с текстом (5-10 строк). Результат сохранить в новом файле, исходный файл должен остаться без изменения.В созданном текстовом файле удалить вторую строку, начинающуюся с буквы 'Н'.
2) Из информации, содержащейся в файлах query[1-5], определить штат, в котором был сделан заказ на самую большую общую сумму.
3) Определить количество пользователей из группы
 Комментарий модератора Marinero
Правила форума п.5.5
Запрещено размещать тему в нескольких подразделах одного раздела одновременно (кросспостинг), а также дублировать тему в одном разделе.
Правила форума п.5.16
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Правила форума п.5.18
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Вопрос: Как переместить файлы в другую папку

здравствуйте
подскажите,пжлс как переместить несколько файлы из каталога в каталог
я смог только 1 файл переместить с командой mv
а как например переместить файлы intro и notes из каталога file/bash в каталог pes
Ответ:
Bash
1
mv file1 file2 file3 dir
Вопрос: Обрезать и склеить два файла

Есть два файла
/file1.user
/file2.user

Нужно второй файл обрезать от начала до первого слова [account], но так чтоб [account] остался. И Потом что останется приклеить в конец файла file1.user
Ответ: sed неправильно работает
Сообщение от man sed
q [exit-code]
¯¯ Immediately quit
Но можно не усложнять, например
Bash
1
sed '/account/{:;N;/account.*account/!b;q}' file2.user >> file1.user
Добавлено через 27 минут
Или так: начало
Bash
1
sed '1,/account/!{//q}' file2.user >> file1.user
конец
Bash
1
sed -n '1,/account/d;//,$p' file2.user >> file1.user
Вопрос: Дописать в файл отчета содержимое домашнего каталога пользователя

2.1.Создание текстовых файлов:

2.1.1.Создать в каталоге lab04 (расположен в домашнем каталоге пользователя

testuser) текстовый файл (файл отчета) и вписать в него свою фамилию, имя, отчество,

курс, группу.

2.1.2.Дописать в файл отчета содержимое домашнего каталога пользователя

testuser.

Меня интересует 2.1.2. Как правильно это сделать.

Добавлено через 3 минуты
2.3.Использование head и tail:

Дописать в файл отчета 3 и 4 строки файла onetext.txt, расположенного в

каталоге lab04
Ответ: Я думал домашний каталог это - /home
Вопрос: Невозможно перезаписать поверх файла не являющемся каталогом

Скрипт должен скопировать в каталог /home/user/restore/ все файлы из актуального на данный момент каталога резервного копирования (имеющего в имени наиболее свежую дату), за исключением файлов с предыдущими версиями.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
RestoreDir="$HOME/restore/"
if ! [ -d "$RestoreDir" ]
then
    mkdir $RestoreDir
fi
 
LastDir=$(ls ~/ -1 | grep -E "Backup-[0-9]*-[0-9]*-[0-9]* | sort -r -k 2 | head -1)
 
for file in $(ls ~/$LastDir -1)
do
    if [ -d ~/LastDir/$file ]
    then
        mkdir -p $RestoreDir$file
        for a in $(ls ~/$LastDir/$file)
        do
            if [ -z "$(echo "$file" | grep -E -o "[0-9]*-[0-9]*-[0-9]*")" ]
            then
                cp -a ~/$LastDir/$file/$a $RestoreDir/$file
            fi
        done
    else
        if [ -z "$(echo "file" | grep -E o "[0-9]*-[0-9]*-[0-9]*")" ]
        then
            cp -a ~/$LastDir/$file $RestoreDir/$file
        fi
    fi
done
При запуске возникает ошибка
Code
1
Cp:невозможно перезаписать поверх файла /home/user/restore/1/1 , не являющегося каталогом, каталог /home/user/Backup-2015-12-10/1
Ответ: Вообще в скрипте много несуразностей, например
  • парсить вывод команды ls плохая идея в принципе
  • зачем 2 раза делать одинаковую проверку, если уже отобраны имена попадающие под проверку)
  • зачем создавать директорию, если можно сразу её копировать
и т.д.
Будет лучше если Вы подробно опишите задание: формат имен, варианты имен файлов|директорий в каталогах резервного копирования и т.д. и что хотите получить в итоге.
Bash
1
2
ls ~/
ls $(ls -d ~/Backup* | tail -1)