У меня есть файлы 2015, которые являются .pgn
файлы. Это только форма текстового файла, открывается с помощью Notepad ++. Я хочу переименовать эти файлы, заменяя их имя с первой строкой соответствующего содержимого файла в Ubuntu 20.10. Как мы можем достичь этой задачи?
Это пример файла. Имя файла ECO_1.PGN
, и я хочу, чтобы это изменилось на первую строку содержимого файла, который отображается на рисунке, который я хочу сделать для всех файлов 4030, которые у меня есть одновременно в одной операции, если возможный. Есть ли простой способ для массового переименования на основе содержимого файла (первая строка) для этого? Если кто-то может помочь, я очень благодарю их. Спасибо. :)
Редактировать:
Всего в 2015 году. Существующие имена файлов ECO_1.PGN, ECO_2.PGN, ........
до ECO_2015.PGN
Я хочу переименовать каждый из этих файлов, чтобы соответствовать именно первой строке соответствующего содержимого файла. Образец файла отображается на изображении, в котором первая строка:
[ECO "A00"] [Opening "Polish (Sokolsky) opening"]
, поэтому имя этого файла должно меняться из ECO_1.PGN
[ECO «A00»] [открытие » (Сокольский) Открытие "]
Каждый файл - это файл .pgn
.pgn .pgn .pgn . .PGN
Файлы могут быть сохранены как .txt
файлы также без каких-либо проблем. Но я не хочу менять расширение здесь. Требуется только изменение имен, заменяя его первой строкой содержимого файла для всех файлов 2015. Спасибо. :)
Да, вы можете. Убедитесь в необходимости дефрагментации, а затем используйте управление дисками, чтобы освободить место для новых разделов. Если вы хотите поменяться местами, сделайте небольшую емкость около 8 Гбит/с или оставьте ее полностью, если твердотельный накопитель. Это приводит к чрезмерному износу, и такие ОС, как Ubuntu, обнаруживают и создают для вас виртуальный диск для его использования при необходимости. Остальная часть свободного пространства будет использоваться для установки ОС. Необходимо проверить, настроен ли компьютер на загрузку только EFI, убедившись, что в микропрограмме отключена совместимость CSM. Удачи с установкой.
-121--910206-Я протестировал DSU 1.7 (использует репозиторий Dell EMC Linux версии 19.5) на 20.04LTS и, хотя он устанавливается, он не работает.
DSU для 18,04 https://dl.dell.com/FOLDER05327755M/1/Systems-Management_Application_FT56W_LN64_1.6.0_A00.BIN
К сожалению, требуется ряд библиотечных зависимостей, которые не существуют в 20,04, по крайней мере под тем же именем.
Команда dsu достаточно хороша, чтобы рассказать вам, какие библиотеки отсутствуют: -)
Возможно, вы сможете работать с достаточным количеством поисковых запросов через 20.04 репо.
-121--910929- Чтобы переименовать все файлы одновременно, используйте head
, чтобы получить первую строку в файле, и mv
, чтобы переименовать файл с помощью цикла для так:
for f in *.pgn
do
f1=$(head -n1 "$f")
echo mv -n "$f" "$f1"
done
Выполните вышеуказанное из каталога, содержащего файлы, чтобы увидеть сухое выполнение (фактического переименования не произойдет).
Если результаты удовлетворены, удалите echo
, чтобы выполнить фактическое переименование, например:
for f in *.pgn
do
f1=$(head -n1 "$f")
mv -n "$f" "$f1"
done
Примечание:
Первая строка в каждом файле должна быть уникальной, иначе некоторые файлы будут перезаписаны. Поэтому я добавил опцию -n
после mv
, чтобы предотвратить это.
Если первая строка в каждом файле не уникальна, можно добавить номера mv
к новым именам файлов, если они уже существуют, используя опцию --backup = t
после mv
, например:
Измените эту строку в приведенном выше коде:
echo mv -n "$f" "$f1"
На эту:
echo mv --backup=t "$f" "$f1"
echo
есть ли защита ваших файлов от непреднамеренных изменений во время тестирования кода и чтобы дать вам сухой прогон того, что на самом деле произойдет. Удалите эхо
для фактического переименования.
Также обратите внимание, что действия опций mv
( -n
или -backup = t
) не будут отражаться в выходных данных при использовании echo
, но вступят в силу при удалении echo
.
Еще одна вещь: если первая строка файла содержит косые черты /
, это неприемлемо и приведет к ошибке, поэтому необходимо переопределить переменную $ f1
и изменить ее на подчеркивание _
, добавив эту строку в код после f1 = $ (head -n1 «$ f»)
:
f1="${f1//\//_}"
Последний рабочий код, который может использовать дублирующиеся имена файлов и косые черты, таков ( будьте осторожны , что приведет к немедленному переименованию файлов .управляемый ):
for f in *.pgn
do
f1=$(head -n1 "$f")
f1="${f1//\//_}"
mv --backup=t "$f" "$f1"
done