могу предложить вариант на питоне в одну строку )подскажите пожалуйста как это почистить через команды терминала линукс
Bash:
python3 -c "for i in (open('./domains.txt','r').readlines()): print(i.split(' ')[0])"
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
могу предложить вариант на питоне в одну строку )подскажите пожалуйста как это почистить через команды терминала линукс
python3 -c "for i in (open('./domains.txt','r').readlines()): print(i.split(' ')[0])"
спасибо большое работаетмогу предложить вариант на питоне в одну строку )
Bash:python3 -c "for i in (open('./domains.txt','r').readlines()): print(i.split(' ')[0])"
Я бы пошёл немного другим путём - при запуске сервера я бы запускал bash скрипт, в котором бы описывал логику.который будт каждый час брать допустим фаил 1.exe затем через час 2.exe и далее через ещё один час 3.exe и так по кругу
#!/bin/bash
run_files() {
mainPath="/var/www/html" # тут нужно указать путь к папке, где лежат файлы
for file in `/bin/ls ${mainPath} | sort`; do
# если перебираемый объект - это файл, запускаем его
if [ -f "${mainPath}/${file}" ]; then
bash "${mainPath}/${file}"
sleep 1h
# переименовываем в se.exe
mv ${mainPath}/${file} ${mainPath}/se.exe
# не совсем понял куда его обратно переименовывать, но сделать это можно здесь
fi
done
while true; do
run_files
done
@reboot /path/to_script.shchmod +x /path/to_script.sh#!/bin/bash
# Путь к директории
base_dir="/home/kilo/Videos/http"
file_dir="$base_dir/file"
format="$1" # Параметр, определяющий формат файлов (exe или dll)
# Проверка корректности переданного формата
if [[ "$format" != "exe" && "$format" != "dll" ]]; then
echo "Invalid format specified. Use 'exe' or 'dll'. Exiting."
exit 1
fi
# Проверка существования директории file
if [[ ! -d $file_dir ]]; then
echo "Directory $file_dir does not exist. Exiting."
exit 1
fi
# Функция для обновления файлов
update_files() {
echo "Checking for next $format files in $file_dir..."
# Находим следующие файлы указанного формата в алфавитном порядке
next_file=$(find "$file_dir" -maxdepth 1 -type f -name "*.$format" | sort | head -n 1)
if [[ -n $next_file ]]; then
echo "Found file: $next_file."
if [[ "$format" == "exe" ]]; then
echo "Moving $next_file to $base_dir/se.exe..."
mv "$next_file" "$base_dir/se.exe"
echo "Moved $next_file to $base_dir/se.exe"
elif [[ "$format" == "dll" ]]; then
echo "Moving $next_file to $base_dir/ven.dll..."
mv "$next_file" "$base_dir/ven.dll"
echo "Moved $next_file to $base_dir/ven.dll"
fi
else
echo "No more $format files to process in $file_dir."
return 1
fi
}
# Основной цикл
while true; do
echo "Starting update process for $format files..."
update_files
sleep 10 # Пауза на 10 секунд перед следующей проверкой
done
Если честно, не совсем понял вашу задачу, но судя по описанию скрипт выше подходитТо есть я лажу в папку file
допустим 50 разных exe или dll файлов и переименовываю их по списку 1,2,3,4,5,6,7,8,9,10,11, и тд c расширением exe или dll
а скрипт берёт по списку файлы из папки file и перемешет новый фаил в папку html переименовывая его в se.exe заменяя его в папке html
и получаеться что какждые пол часа или час скрпт помешает новый фаил в папку html а от туда его уже скачивает на виртуальную среду другой скрипт установленный на Windows
что значит упростить?РЕШЕНИЕ если можно как то упростить пишите буду рад любым советам
ну добавить что то полезное на ваш взгляд имел введуЕсли честно, не совсем понял вашу задачу, но судя по описанию скрипт выше подходит
что значит упростить?
#!/bin/bash
# Путь к базовой директории и директории с файлами
base_dir="/var/www/html"
file_dir="$base_dir/file"
file_list="$base_dir/file_list.txt"
interval=10 # Интервал в секундах (10 секунд для тестирования, поменяйте на 3600 для 1 часа)
# Получение параметра для выбора типа файлов
format="$1"
# Проверка корректности переданного формата
if [[ "$format" != "exe" && "$format" != "dll" ]]; then
echo "Неверный формат указан. Используйте 'exe' или 'dll'. Завершение работы."
exit 1
fi
# Проверка существования директории file
if [[ ! -d $file_dir ]]; then
echo "Директория $file_dir не существует. Завершение работы."
exit 1
fi
# Переменная для отслеживания последнего использованного файла
last_used_file=""
# Функция для проверки и записи файлов
check_and_write_files() {
echo "Проверка файлов $format в $base_dir на $(date)"
# Поиск файлов указанного формата и запись их имен в file_list.txt
find "$base_dir" -maxdepth 1 -name "*.$format" -exec basename {} \; > "$file_list"
# Проверка, были ли найдены файлы указанного формата
if [[ -s $file_list ]]; then
echo "Найдены файлы $format:"
cat "$file_list"
else
echo "Файлы $format не найдены в $base_dir"
exit 1
fi
}
# Функция для удаления файлов
delete_files() {
echo "Удаление файлов $format в $base_dir на $(date)"
# Чтение имен файлов из file_list.txt и удаление их
while IFS= read -r filename; do
if [[ -f "$base_dir/$filename" ]]; then
rm "$base_dir/$filename"
echo "Удален $base_dir/$filename"
else
echo "Файл $base_dir/$filename не найден, пропуск удаления."
fi
done < "$file_list"
}
# Функция для копирования и переименования файлов из file_dir в base_dir
copy_and_rename_files() {
echo "Копирование и переименование файлов $format из $file_dir в $base_dir на $(date)"
# Получение списка файлов указанного формата из file_dir
files=($(find "$file_dir" -maxdepth 1 -type f -name "*.$format" | sort))
if [[ ${#files[@]} -eq 0 ]]; then
echo "Файлы $format не найдены в $file_dir. Завершение работы."
exit 1
fi
# Поиск следующего файла для копирования
if [[ -z $last_used_file ]]; then
next_file="${files[0]}"
else
next_index=0
for i in "${!files[@]}"; do
if [[ "${files[$i]}" == "$last_used_file" ]]; then
next_index=$(( (i + 1) % ${#files[@]} ))
break
fi
done
next_file="${files[$next_index]}"
fi
# Чтение имен файлов из file_list.txt и копирование с переименованием
while IFS= read -r filename; do
if [[ -n $next_file ]]; then
cp "$next_file" "$base_dir/$filename"
echo "Скопирован и переименован $next_file в $base_dir/$filename"
last_used_file="$next_file"
else
echo "Файлы $format закончились в $file_dir. Повторный запуск."
break
fi
done < "$file_list"
}
# Функция для вычисления и вывода SHA-256 хеша для переименованного файла
calculate_sha256sum() {
echo "Вычисление SHA-256 хеша для переименованных файлов $format на $(date)"
while IFS= read -r filename; do
if [[ -f "$base_dir/$filename" ]]; then
sha256sum "$base_dir/$filename"
else
echo "Файл $base_dir/$filename не найден для вычисления хеша."
fi
done < "$file_list"
}
# Основной цикл
while true; do
# Вызов функции для проверки и записи файлов
check_and_write_files
# Вызов функции для удаления файлов
delete_files
# Вызов функции для копирования и переименования файлов
copy_and_rename_files
# Вызов функции для вычисления SHA-256 хеша
calculate_sha256sum
# Ожидание перед следующей итерацией
echo "Ожидание $interval секунд..."
sleep $interval
done
Да то что надо спасибогпт предлагает такой вариант
awk -F: '{print $(NF-1) ":" $NF}' input.txt
- -F: — указывает : как разделитель полей.
- $(NF-1) — предпоследнее поле (номер телефона).
- $NF — последнее поле (число).
- input.txt — файл с входными строками.