Чтобы изменить содержимое файла file.list
так, как вы описываете:
sed 's/\.bed *$//' file.list >file.list.tmp && mv file.list.tmp file.list
Это будет работать с любой реализациейsed
(флаг командной строки -i
общеизвестно не -переносимый между sed
реализациями ). Он записывает результат во временный файл, и если не возникло ошибок (, таких как нехватка места на диске ), исходный файл заменяется этим временным файлом.
Выражение s/\.bed *$//
удалит строку .bed
из конца каждой строки. Это также позволяет использовать конечные пробелы (, они тоже будут удалены ).
Чтобы переименовать фактические файлы , перечисленные в file.list
, предполагая одно имя файла в строке:
while IFS= read -r name; do
echo mv "$name" "${name%.bed}"
done <file.list
echo
предотвращает фактическое переименование, вы должны запустить его с ним один раз, чтобы проверить, работает ли он.
Замена переменной ${name%.bed}
удалит .bed
из конца значения $name
(, которое является строкой, считанной из file.list
).
Прежде всего, очистите все, что относится к делу, включая пакеты, так как вы, похоже, понятия не имеете, где находитесь. Тогда начните с простого Apache. Это работает нормально? Научитесь вносить небольшие (крошечные )изменения в конфигурацию и проверять, работают ли они. Как только вы освоитесь с основами, установите мод PHP для того же Apache и посмотрите, что с ним можно сделать. Как только вы освоитесь с модом и все еще помните основы, у вас не должно возникнуть проблем с получением вещей в зависимости от этой работы, включая устранение неполадок. Прежде чем вы туда доберетесь, не портите свое обучение установкой вещей, из-за которых вам будет сложно узнать, что происходит с вашим HTTP-интерфейсом, как и с другими HTTP-серверами. И как только вы разберетесь с PHP под Apache, вы можете перейти на WSGI, Ruby или что-то еще.